0

我从 oracle db (index.php) 生成了一个 php 数组

    while ($row = oci_fetch_array ($stid, OCI_ASSOC + OCI_RETURN_NULLS)){

    $result[]=$row;

}

现在我必须将此数组传递给另一个 php 文件以进行其他处理。

 <script language="javascript" type="text/javascript">

  function sortme()
   {  
    var d=document.getElementById("div");
    var obj = <?php echo json_encode($result); ?>;
    if (window.XMLHttpRequest)
      {// code for IE7+, Firefox, Chrome, Opera, Safari
           xmlhttp=new XMLHttpRequest();
      }
    else
      {// code for IE6, IE5
          xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
      }
   xmlhttp.onreadystatechange=function()
     {
       if (xmlhttp.readyState==4 && xmlhttp.status==200)
        {
        d.innerHTML=xmlhttp.responseText;
        }
     }
  xmlhttp.open("GET","getsorted.php?q=obj",true);
  xmlhttp.send();
   }

然后在 php 文件中获取 sorted.php 我需要这个二维数组“结果”并对其进行排序。所以我用这个,(getsorted.php)

   <?php

    $q=$_GET["q"];
    $ans=json_decode(str_replace('\"','"',$q),true);
    var_dump($q);
    var_dump($ans);
   ?>

但我无法弄清楚任何事情。我无法取回数组。如果这是错误的方法,请提出正确的方法。

请务必发布代码。

非常感谢。

有更好的方法吗???

4

1 回答 1

1

当您必须传递 URLEncoded JSON 表示时,您传递的是字符串“obj”。代替:

xmlhttp.open("GET","getsorted.php?q=obj",true);

和:

xmlhttp.open("GET","getsorted.php?q=" + encodeURIComponent(JSON.stringify(obj)),true);

你在做什么有点像这样:

PHP file  AnotherPHPFile
   |           ^  |
   |       ____|  |
   V      /       v
Javascript---(sorted result into HTML)   

如何简单地将getsorted.php文件包含在您的文件中index.php并直接使用排序功能。您以这种方式保存网络请求..

于 2012-07-19T11:23:11.057 回答