Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Can';t将jquery值分配给Yii中的会话变量_Php_Jquery_Session_Yii - Fatal编程技术网

Php Can';t将jquery值分配给Yii中的会话变量

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">

在下面的代码中,jQuery提供了值
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;
}