2015-10-06 2 views
0

У меня есть форма с полями, такими как pincode, village, district и т. Д. Автоматически заполняйте эти значения при вводе pincode. Просьба представить пример кода для достижения этого. благодарит заранее.Auto Значения текстового поля из базы данных в yii

<tr> 
<div class="row"> 
<td><?php echo $form->labelEx($model,'pin'); ?></td> 
<td><?php echo $form->textField($model,'pin',array('size'=>6,'maxlength'=>6,'style'=>'height:34px;')); ?> 
    <?php echo $form->error($model,'pin'); ?></td> 
</div> 

<tr> 
<div class="row"> 
<td><?php echo $form->labelEx($model,'street'); ?></td> 
<td><?php echo $form->textField($model,'street',array('size'=>25,'maxlength'=>25,'style'=>'height:34px;')); ?> 
    <?php echo $form->error($model,'street'); ?></td> 
</div> 

<tr> 
<div class="row"> 
<td><?php echo $form->labelEx($model,'village'); ?></td> 
<td><?php echo $form->textField($model,'village',array('size'=>25,'maxlength'=>25,'style'=>'height:34px;')); ?> 
    <?php echo $form->error($model,'village'); ?></td> 
</div> 

заранее спасибо.

+0

Вы храните значения 'pin' в своем db? – Criesto

+0

Вы загружаете $ model перед рендерингом? – Sergey

+0

Да, у меня есть все данные pincodes в базе данных. а также деревни и районы и т. д. и т. д. – Tilak

ответ

0

Я предполагаю, что ваше имя таблицы areas и Areas - это модель для этой таблицы.

Bellow Я повторяю (не совсем) код вида с вашего вопроса, и я прикрепляю ajax к вашему pincode полям и class Недвижимость в других текстовых полях.

<?php echo $form->labelEx($model,'pin'); ?> 
    <?php echo $form->textField($model,'pin',array(
     'size'=>6, 
     'maxlength'=>6, 
     'style'=>'height:34px;', 
     //Ajax call to get the pin related values, onBlur. 
     'ajax' => array 
       (
       'type' => 'POST', 
       'dataType'=>'JSON', 
       'url' => CController::createUrl('site/getValuesByPincode'), 
       'success'=>'js:function(output){$(".setVillage").val(output.village); $(".setStreet").val(output.street);}' 
       ) 

     )); ?> 
    <?php echo $form->error($model,'pin'); ?> 

    <br/><br/> 

    <?php echo $form->labelEx($model,'street'); ?> 
    <?php 
    //adding a class 
    echo form->textField($model,'street',array('size'=>25,'maxlength'=>25,'style'=>'height:34px;','class'=>'getStreet')); 
    ?> 
    <?php echo $form->error($model,'street'); ?> 

    <br/><br/> 

    <?php echo $form->labelEx($model,'village'); ?> 
    <?php 
    //Ading a class 
    echo $form->textField($model,'village',array('size'=>25,'maxlength'=>25,'style'=>'height:34px;','class'=>'getVillage')); 
    ?> 
    <?php echo $form->error($model,'village'); ?> 

И я творю действие getValuesByPincode в моем контроллере (например: контроллер сайта), чтобы служить мой АЯКС вызов.

public function actionGetValuesByPincode() 
{ 
    $pincode = $_POST['Areas']['pin']; 
    $data = Areas::model()->find('pin=:pin', array(':pin' => $pincode)); 
    $output = array(); 
    if (count($data) > 0) 
    { 
     $output['village'] = $data->village; 
     $output['street'] = $data->street; 
     echo json_encode($output); 
    } 
} 
Смежные вопросы