【发布时间】:2016-11-30 21:04:07
【问题描述】:
我应该怎么做?
$ids = ArrayHelper::map(Tours::find()->select(['pk', 'programa'])->asArray()->all(), 'pk', 'programa');
$this->registerJs('
$("#child1_child2").change(function() {
var val = $("#child1_child2 option:selected").val();
valInt = parseInt(val);
$("#form").attr("action", "programas/" + "'.$ids[.'"valInt"'.].'");
});
', \yii\web\View::POS_END);
我不知道如何解析这部分:
$("#form").attr("action", "programas/" + "'.$ids[.'"valInt"'.].'");
$ids 是一个 php 数组
valInt 是一个 js 变量
我认为这是正确的,但我遇到了解析错误
syntax error, unexpected '.', expecting ']'
如果我写"'.$ids[40].'",它工作得很好并且没有错误。
这是在site/index.php的视图中,与Yii2一起工作。
感谢您的帮助!
【问题讨论】:
-
在不使用 AJAX 的情况下,您无法将输出的 JS 传递回服务器并期望得到响应。或者,您可以将 json 编码版本的 $ids 作为 var 放入 JS 中,然后索引 $ids 的 JS 版本...
-
您可能会发出 $ids 以便它是客户端上的 javascript 数组,然后您可以使用 valInt 对其进行索引
-
但是 "'.$ids[40].'" 工作正常还是不相关?
-
它工作正常,因为 $ids[40] 被设置为一个 php 数组。问题是您试图在将静态生成的 JS 发送到浏览器之前使其成为动态的。那不会飞。
标签: javascript php jquery yii yii2