2015-04-20 10:46:38 4358次浏览 3条回答 0 悬赏 10 金钱
$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怎么写进来才对

补充于 2015-04-20 14:08

。。。为啥我没法回复你们回答的

  • 回答于 2015-04-20 13:46 举报

    不明白为什么JS里面要套进去sql,MVC的初衷貌似是不希望我们这样来编写代码

    4 条回复
    回复于 2015-04-20 14:07 回复

    哪套进sql了?你仔细看。

    回复于 2015-04-20 14:11 回复

    戳瞎我的眼。。。

    回复于 2015-04-20 14:21 回复

    也戳瞎了我的眼。。。

    回复于 2015-04-20 16:03 回复

    亮瞎我的眼。。。

  • 回答于 2015-04-20 14:09 举报

    一句话:不能这样传值
    题主还没搞清楚web的原理,什么是客户端,什么是服务器端;php在哪里执行,js在哪里执行。
    建议先复习并理解一下这些基础,这很重要。

  • 回答于 2015-04-20 14:24 举报

    哥,你真逗,你要传的是Cid,你这个cid都是js的变量,而你这句语句 $ClientInfo_CName = ClientInfo::find()->where(['CID' => CId ])->one() 呢!是PHP的语句。

    你的这个js变量在加载完页面之后才有,那句PHP语句在你加载页面之前已经执行完毕了。。。
    即使你可以这样做,程序是顺序执行的,难道你还想倒回去再执行一遍那句PHP语句?

    2 条回复
    回复于 2015-04-20 14:59 回复

    非常感谢你们的提议哈

    回复于 2015-04-21 11:17 回复

    最终结果是对了,下面是代码,再此谢谢各位的指点
    <?= $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
经理

ellen 苏州

注册时间:2015-03-31
最后登录:2015-06-05
在线时长:56小时55分
  • 粉丝13
  • 金钱415
  • 威望10
  • 积分1075

热门问题