【问题标题】:Auto Text field values from Database in yiiyii 数据库中的自动文本字段值
【发布时间】:2016-01-03 10:09:59
【问题描述】:

我有一个包含 pincode、村庄、地区等字段的表单。当我输入 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>

提前致谢。

【问题讨论】:

  • 您是否将pin 的值存储在您的数据库中?
  • 渲染前是否加载了$model?
  • 是的,我在数据库中有所有的密码数据。以及村庄和地区等
  • 可能重复我猜你想要一些自动完成? stackoverflow.com/questions/23215869/autocomplete-in-yii2
  • 不..不,我已经尝试过 CJuiAutoComplete。例如,如果我输入 522002,它将自动填充其他字段 Guntur 为 District,GunturMandal 为 Mandal 那样。

标签: yii yii-extensions


【解决方案1】:

我假设您的表名是 areasAreas 是该表的模型。

下面我正在重复(不完全是)查看您问题中的代码,我将在您的 pincode 字段上附加 ajax 调用,在您的其他文本字段上附加 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);
    }
}

【讨论】:

    猜你喜欢
    • 2015-01-18
    • 2012-03-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-09-30
    • 2011-12-10
    • 2015-03-19
    • 1970-01-01
    相关资源
    最近更新 更多