繁体   English   中英

如何在JavaScript中访问多维php数组?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM