我想要,我选择带有自动完成功能的食物名称,并在自动完成中显示所选食物的名称,在其他文本字段中显示所选食物的卡路里,并在我的表中使用 activerecord 选择食物的 ID 记录...
我成功地选择了带有自动完成功能的食物并填写了其他文本字段食物的卡路里,但我没有在我的表中记录这个食物 ID。
我有一张桌子,Yemekler 这张桌子的字段;id yemekAdi niteligi kalori
当我单击提交按钮时,我想在我的数据库中选择食物的 id 记录。但表格将食物的名称记录在案。由于值不是整数,记录不成功。
感谢帮助。
我的代码在下面
menu.php 视图
<div class="row">
<?php
echo $form->labelEx($model,'yemek1');
$this->widget('zii.widgets.jui.CJuiAutoComplete', array(
'model'=>$model->yemek1,
'name'=>'Menu_yemek1',
'source'=>$this->createUrl('kayit/autocompleteTest'),
'options'=>array(
'delay'=>300,
'minLength'=>1,
'showAnim'=>'fold',
'focus'=>'js:function(event, ui) {
$("#Menu_yemek1").val(ui.item.label);
return false;
}',
'select'=>"js:function(event, ui) {
$('#Menu_yemek1').val(ui.item.label);
$('#kalori1').val(ui.item.kalori1);
return false;
}",
),
'htmlOptions'=>array(
'size'=>'40'
),
));
echo $form->error($model,'yemek1');
?>
</div>
<div class="row">
<?php echo CHtml::textField('kalori1', '', array('id'=>'kalori1', 'disabled' => true)); ?>
</div>
KayitController.php 控制器
public function actionAutocompleteTest() {
$res =array();
if (isset($_GET['term'])) {
$sql = 'SELECT yemekAdi as label, id as value, kalori as kalori1 FROM yemekler ';
$sql = $sql . ' WHERE niteligi=1 and yemekAdi LIKE :label'; // Must be at least 1
$command =Yii::app()->db->createCommand($sql);
$command->bindValue(":label", '%'.$_GET['term'].'%', PDO::PARAM_STR);
echo json_encode ($command->queryAll());
}
}