Yii2.0 的 JS 里面写 SQL 语句传参数 [ 2.0 版本 ]
$this->registerJs('
function ajaxgetClientInfo(str) {
var CId=$(str).val();'.
$ClientInfo_CName = ClientInfo::find()->where(['CID' => CId ])->one() .
'alert('. $ClientInfo_CName->CID .');}
', View::POS_END);
where(['CID' => CId ])
这个CId怎么写进来才对
ellen 补充于 2015-04-20 14:08
。。。为啥我没法回复你们回答的
共 3 个回答
-
哥,你真逗,你要传的是
Cid
,你这个cid都是js的变量,而你这句语句$ClientInfo_CName = ClientInfo::find()->where(['CID' => CId ])->one()
呢!是PHP的语句。你的这个js变量在加载完页面之后才有,那句PHP语句在你加载页面之前已经执行完毕了。。。
即使你可以这样做,程序是顺序执行的,难道你还想倒回去再执行一遍那句PHP语句?共 2 条回复最终结果是对了,下面是代码,再此谢谢各位的指点
<?= $form->field($model, 'ClientID')->dropDownList(ArrayHelper::map($ClientInfo_CName, 'CID', 'CName')) ?>
view代码<?php $this->registerJs(' $("#devicesinfo-clientid").change(function() { $.ajax({ type: "POST", url: "/advanced/frontend/web/index.php?r=devices-info/update", data: {"id": '.$model->ID.', "cid": '.'$(this).val()'.',"val":"1"}, success: function(data) {//===>不知道data为啥显示整个页面的代码 var attr=data.split("!")[0]; $("#clientinfo-fax").val(attr.split(".")[0]);//===>我这边是通过截取字符串 }, error: function(){ alert("error"); } }); });', View::POS_END); ?>
controller代码
public function actionUpdate($id) { $cid = (int)Yii::$app->request->post('cid'); $departments = ClientInfo::find() ->where(['CID' => $cid]) ->all(); foreach ($departments as $models) { echo $models->Fax.".".$models->Tel."!"; } }
有好的意见尽管回复,谢谢
ellen 苏州
注册时间:2015-03-31
最后登录:2015-06-05
在线时长:56小时55分
最后登录:2015-06-05
在线时长:56小时55分
- 粉丝13
- 金钱415
- 威望10
- 积分1075