来自数据库的自动文本字段值在yii中

时间:2015-10-06 13:09:06

标签: yii yii-extensions

我有一个包含pincode,village,district等字段的表单。当我输入pincode时,自动填充这些值。请提供实现此目的的示例代码。 提前谢谢。

<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>

提前感谢。

1 个答案:

答案 0 :(得分: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来为我的ajax呼叫提供服务。

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);
    }
}