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を取得します。この2次元配列の「結果」を戻してソートする必要があります。だから私はこれを使います(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 に答える