代码是这样的:
<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。
{php}代码中设置了$arr
。
我尝试只是在主PHP代码中访问数组并将结果字符串传递给javascript,这是URL的'?&amp; PQID = ar&amp; PQno = 1 ...'部分,但它没有成功通过。我尝试将数组本身传递给javascript但js但我无法访问内容。
答案 0 :(得分:3)
PHP在服务器上运行,客户端上运行Javascript - 他们根本看不到彼此的变量。可以这样想 - PHP代码只生成文本。它可能是Javascript,但就PHP而言,它只是文本。
基本上,您需要使用PHP生成有效的Javascript文本,以便在客户端上创建相同的数据结构。
答案 1 :(得分:1)
试试这个
<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>
答案 2 :(得分:1)
将此添加到JS函数:
var arr=<?php echo json_encode($arr); ?>;
JS-Array中的“arr”现在可以通过JS访问PHP-Array“$ arr”。
我猜你正在尝试这样的事情:
<?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>