オートコンプリートで食品の名前を選択し、選択した食品の名前をオートコンプリートに表示し、選択した食品のカロリーを他のテキストフィールドに表示し、選択した食品の 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());
}
}