我有一个包含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>
提前感谢。
答案 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);
}
}