带有json数组的SESSION变量

时间:2014-08-29 14:04:24

标签: php json session

我的服务器中有一个xml文件,我想用php提取ID列表然后使用json_encode()将数组转换为JSON并将其放在$_SESSION变量中,以实现此目的明确我理想的JS功能是:

function getIDs() {
    var x = <?php if(isset($_SESSION['IDs'])) echo $_SESSION['IDs']; ?>;
    if(x == '') {
        $.post('getPL.php','PL_name=cool&q=IDs',function(responseText){
            x = responseText;
        });
    }
    //some other code
    //return array; // this is an array i use later in js
}

在我的getPL.php中我有:

$videos_list = $theOne->parentNode->parentNode->getElementsByTagName('video');
    for ($i = 0; $i < $videos_list->length; $i++) {
        $a = $videos_list->item($i);
        $id_out = $a->getElementsByTagName('id')->item(0)->nodeValue;
        $array[$i] = $id_out;
    }
    $IDs = json_encode($array);
    $_SESSION['IDs'] = $IDs;
    echo $IDs;
    break;

如果我提醒var x = <?php if(isset($_SESSION['IDs'])) echo $_SESSION['IDs']; ?>;,我会g8M8kxuaCWk,VWrBFt46J18

但是当我提醒responseText时,我得到["g8M8kxuaCWk","VWrBFt46J18"]

我想要的只是从xml文件中提取ID并将它们放在js数组对象中

如果还有什么需要告诉我

2 个答案:

答案 0 :(得分:0)

我认为你需要在你的JS中使用PHP代码的引号,如:

var x = '<?php if(isset($_SESSION['IDs'])) echo $_SESSION['IDs']; ?>';

答案 1 :(得分:0)

好的我修好了 所以var x = '<?php if(isset($_SESSION['IDs'])) echo $_SESSION['IDs']; ?>';会给我一个数组,这就是我真正想要的 但是alert(resposeText);实际上给了我一个字符串,所以我做了JSON.parse(responseText); 感谢谁帮助我得到了这个答案

在这两种情况下,如果我alert(obj[0]);我得到第一个元素,那么它正在工作

我理想的JS功能变为:

function getIDs() {
   var x = <?php if(isset($_SESSION['IDs'])) echo $_SESSION['IDs']; ?>;
   if(x == '') {
      $.post('getPL.php','PL_name=cool&q=IDs',function(responseText){
         x = JSON.parse(responseText); // this is the difference
      });
   }
   return x;
}