2013-11-27 2 views
1

У меня есть CMaskedTextField в моей форме, когда я его заполняю, $ _POST [] не возвращает никакого значения !?Chtml Cmaskedtextfield Не посылайте никакой ценности?

<?php echo CHtml::label(Yii::t('models', 'form.label.position'), 'position'); ?> 
    <?php 
    $this->widget('CMaskedTextField', array(
      'model' => null, 
      'name' => "position", 
      'mask' => '999', 
      'htmlOptions' => array(
      'size' => 5, 
      'placeholder' => Yii::t('models', 'form.hint.position'), 
      'title' => Yii::t('models', 'form.hint.position'), 
      ), 
    )); 
    ?> 

ответ

0

Вы можете попробовать удалить 'model' => null как:

<?php echo CHtml::label(Yii::t('models', 'form.label.position'), 'position'); ?> 
    <?php 
    $this->widget('CMaskedTextField', array(
      'name' => "position", 
      'mask' => '999', 
      'htmlOptions' => array(
      'size' => 5, 
      'placeholder' => Yii::t('models', 'form.hint.position'), 
      'title' => Yii::t('models', 'form.hint.position'), 
      ), 
    )); 
    ?> 

В виджете, если вы хотите использовать свой model, то вы должны удалить name и добавить attribute.

Обновлено

В моей форме: У меня есть представление с формой, как:

<?php echo CHtml::beginForm('post/test', 'post'); ?> 

    <?php echo CHtml::errorSummary($model); ?> 

    <div class="row"> 
     <?php echo CHtml::label(Yii::t('models', 'form.label.position'), 'position'); > 
    <?php 
    $this->widget('CMaskedTextField', array(   
      'name' => "position", 
      'mask' => '999', 
      'htmlOptions' => array(
      'size' => 5, 
      'placeholder' => 'place holder', 
      'title' => 'title' 
      ), 
    )); 
    ?> 
    </div> 

    <div class="row submit"> 
     <?php echo CHtml::submitButton('test'); ?> 
    </div> 

<?php echo CHtml::endForm(); ?> 

И у меня также есть PostController, который содержит test действие, как:

public function actionTest() 
    {  
     var_dump($_POST); 
    } 

Он работает нормально.

array (size=2) 
    'position' => string '234' (length=3) 
    'yt0' => string 'test' (length=4) 

Поэтому, пожалуйста, убедитесь, что у вас есть форма отправляется методом POST и он представлен после заполнения вашего maskedTextField.

+0

Спасибо, Но ваш ответ не правильный, у меня нет модели для него, так как вы сказали, что я удаляю '' model '=> null', но $ _POST [' position '] пуст .... – shgnInc

+0

@ Shgn.ir: Я обновил свой ответ. Пожалуйста, взгляните на это! – secretlm

+0

Да, я действительно уверен в методе формы post, потому что у меня есть другие поля, которые правильно отправляются. 'echo CHtml :: beginForm ($ this-> createUrl ('create', array ('form' => $ form_id)), 'post', array ('id' => 'form-id',));' – shgnInc