[英]How can I access a multidimentional php array in javascript?
代码是这样的:
<SCRIPT LANGUAGE="JavaScript">
function showReview(){
//javascript stuff
<?php
$http="obj.href ='http://localhost/PROJECT1/thispage.php'";
if (array_key_exists(0, $arr)){
$http .= "+'&PQID={$arr[0]['ID']}'+
'&PQNo={$arr[0]['QNo']}'+
'&PNextSWF={$arr[0]['NextSWF']}';";
}
echo $http;
?>
}
</SCRIPT>
但是我无法访问$arr
数组。 我试图将其声明为全局或使用$GLOBALS
变量。
在onclick期间调用Show Review。 $arr
在主要的php代码中设置。 我尝试只访问主要php代码中的数组,并将结果字符串传递给javascript,这是URL的'?&PQID = ar&PQno = 1 ...'部分,但未成功传递。 我尝试将数组本身传递给javascript但js,但无法访问内容。
PHP在服务器上运行,Javascript在客户端上运行-他们根本看不到彼此的变量。 这样想吧-PHP代码仅生成文本。 它可能是Javascript,但就PHP而言,只是文本。
基本上,您需要使用PHP生成文本,该文本是用于在客户端上创建相同数据结构的有效Javascript。
尝试这个
<SCRIPT LANGUAGE="JavaScript">
function showReview(){
//javascript stuff
var http =
<?php
$http="obj.href ='http://localhost/PROJECT1/thispage.php'";
if (array_key_exists(0, $arr)){
$http .= "+'&PQID={$arr[0]['ID']}'+
'&PQNo={$arr[0]['QNo']}'+
'&PNextSWF={$arr[0]['NextSWF']}';";
}
echo $http;
?>
}
</SCRIPT>
将此添加到JS函数中:
var arr=<?php echo json_encode($arr); ?>;
PHP数组“ $ arr”现在应该可以通过JS函数内的“ arr”访问JS。
我猜您正在尝试这样的事情:
<?php
//example array
$arr=array(
array('ID'=>'0','QNo'=>'q0','NextSWF'=>1),
array('ID'=>'1','QNo'=>'q1','NextSWF'=>2),
array('ID'=>'2','QNo'=>'q2','NextSWF'=>3),
);
?>
<script type="text/javascript">
function showReview(nr)
{
//make the array accessible to JS
<?php echo 'var arr='.json_encode($arr);?>
//some obj, don't no what it is in your case
var obj={};
var href='http://localhost/PROJECT1/thispage.php';
if(typeof arr[nr]!='undefined')
{
href+='?PQID='+arr[nr]['ID']+
'&PQNo='+arr[nr]['QNo']+
'&PNextSWF='+arr[nr]['NextSWF'];
}
else
{
alert('key['+nr+'] does not exist');
}
//check it
alert(href);
//assign it
obj.href=href;
}
</script>
<b onclick="showReview(0)">0</b>-
<b onclick="showReview(1)">1</b>-
<b onclick="showReview(2)">2</b>-
<b onclick="showReview(3)">3</b>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.