我的服务器中有一个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数组对象中
如果还有什么需要告诉我
答案 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;
}