Php Can';t将jquery值分配给Yii中的会话变量
在下面的代码中,jQuery提供了值Php Can';t将jquery值分配给Yii中的会话变量,php,jquery,session,yii,Php,Jquery,Session,Yii,在下面的代码中,jQuery提供了值item.rmid。该值是从数据库中获取的,显示在item.rmid中,必须存储在Yii::app()->SESSION[“rid”]中,但它不起作用 鉴于此,我有以下代码: $("#pct").html(''); $.each(<?php echo $ar; ?>, function (i, item) { $("#pct").append(' <div class="title">
item.rmid
。该值是从数据库中获取的,显示在item.rmid
中,必须存储在Yii::app()->SESSION[“rid”]
中,但它不起作用
鉴于此,我有以下代码:
$("#pct").html('');
$.each(<?php echo $ar; ?>, function (i, item) {
$("#pct").append('
<div class="title">
fss"
<?php Yii::app()->SESSION["rid"]=' + item.rmid + ' ; ?>"
<?php echo Yii::app()->SESSION["rid"];?>
</div>')
但am无法分配rid值。。。。。。。。。我知道我得到了它,我有多个rid,并将其分配给一个Yii::app()->会话[“rid”],它无法在每次迭代中存储所有值…我如何在查询字符串中传递它,但要隐藏的值如果没有AJAX,就无法通过javascript更新服务器上的内容。 使用ajax向服务器发送请求,并使用
Yii::app()->session['var'] = $_POST['received_value'];
阅读ajax。需要注意的主要问题是,当浏览器运行javascript时,代码中的PHP部分已经完成工作。代码所做的只是将字符串
'+item.rmid+'
分配给某个PHP变量。它只是一个常量字符串,根本没有连接到javascript。之后,您的浏览器将获得类似以下javascript的内容:
$("#pct").html('');
$.each(some_array_from_php, function (i, item) {
$("#pct").append('
<div class="title">
fss""
+ item.rmid +
</div>')
}
现在$decoded只是一个PHP对象数组,因此您可以执行以下操作:
Yii::app()->session["rid"] = $decoded[0]->rid;
上面我们将第一个对象的“rid”存储到会话中。如果您想存储所有这些值,只需循环通过$encoded
,同时将值按如下方式推送到会话:
foreach ($decoded as $obj) {
Yii::app()->session["rids"][] = $obj->rid;
}
哪里有javascript代码?没有会话,我可以显示值。但我想把它分配给会话变量,这是我唯一需要的。。。在没有会话的情况下更新了问题。我可以显示值。但我想将其分配给会话变量,这是我唯一需要的。。。更新了问题我的答案解决了您的问题,您需要使用ajax更新会话。item.rmid不是一个post值,我正在从db获取它。。。。。。。。。你想说的是什么?你能发布一些示例吗?我想说的是,除非你对服务器进行http调用,否则你不能直接使用javascript进行服务器端分配。我所有的值都在$ar中。我唯一需要的是在会话中存储特定的rmid。我可以使用get变量,因为这个值是不允许的向用户显示确切地说,我拥有$ar中的所有值。我唯一需要的是在会话中存储特定的rmid…通过Yii::app()->session[“rid”]=$ar[0][“rmid”];我仍然无法分配任务value@tisha“无法分配”是什么意思?它会带来一些错误吗?尝试
var\u dump
精确确定此调用后会话中存储的值。用新代码更新您的问题(但不要扔掉原始问题,只需添加UPD部分)我已更新了我的问题,发现我无法将其分配给Yii::app()->session[“rid”]由于$ar有多个值,我们在querystring中是否有类似于pass each rid的内容,但是要隐藏的值看起来像$ar
包含json编码的字符串(从哪里得到的?)。要在PHP中使用它,您需要将它解码为PHP结构,使用PHP找到您想要的并分配它。
Yii::app()->session["rid"] = $decoded[0]->rid;
foreach ($decoded as $obj) {
Yii::app()->session["rids"][] = $obj->rid;
}