1

PHPからAjaxにjavascriptで配列を送信しようとしています。PHPファイル「myphp.php」の私の配列は$partsであり、多次元です。

私はecho$partsとechojson_encode($ parts)の両方を使用しましたが、どれも機能しません。$partsには2行2列があります。これはvar_dumpの結果です。

array(4) { [0]=> array(3) { [0]=> string(13) "1350655763.12" [1]=> string(2) "25" [2]=> string(1) " " } [1]=> array(3) { [0]=> string(13) "1350655763.12" [1]=> string(2) "26" [2]=> string(0) "" } [2]=> array(1) { [0]=> string(0) "" } [3]=> array(1) { [0]=> string(0) "" } }

穴の配列をAjaxに送信したいのですが、Webページに$ components[0][0]を表示するだけです。使うとき

echo $parts 

myphp.phpファイルの場合:「配列」の名前は、使用するとWebページに表示されます。

echo json_encode($parts) 

myphp.phpファイル内:配列のすべてのコンポーネントが最初のコンポーネントの代わりに表示されます

        <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
  <head>
    <script>
function getXMLHttp()
{
  var xmlHttp

  try
  {
    //Firefox, Opera 8.0+, Safari
    xmlHttp = new XMLHttpRequest();
  }
  catch(e)
  {
    //Internet Explorer
    try
    {
      xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
    }
    catch(e)
    {
      try
      {
        xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
      }
      catch(e)
      {
        alert("Your browser does not support AJAX!")
        return false;
      }
    }
  }
  return xmlHttp;
}

function MakeRequest()
{
  var xmlHttp = getXMLHttp();

  xmlHttp.onreadystatechange = function()
  {
    if(xmlHttp.readyState == 4) 
     { 
      var parts=JSON.parse(xmlHttp.responseText); 
      document.getElementById('ResponseDiv').innerHTML = parts[0][0]; 
     }
  }

  xmlHttp.open("GET", "myphp.php", true); 
  xmlHttp.send(null);
}


result=MakeRequest();



</script>


  </head>
  <body>

    <div id='ResponseDiv'>
      This is a div to hold the response.
    </div>
  </body>
</html>

これらのコードを変更して、Webページでparst [0] [0]を取得するにはどうすればよいですか?よろしくお願いします

4

2 に答える 2

1

javascriptではJSON.parseを使用し、phpではjson_encodeを使用する必要があります。

PHP:

$parts = array();
....
echo (json_encode($parts));

Javascript:

var parts = JSON.parse(xmlHttp.responseText);

オプションで、PHPページで定義することもできますheader('Content-type: application/json');

于 2012-10-23T18:43:48.833 に答える
0

使用する前に、jsonでエンコードされたデータをJavaScriptに解析する必要があります。ここでjsonを確認してください

http://www.json.org/js.html

このコードを試してください:

result = MakeRequest();
var myObject = eval('(' + result + ')');
alert(myObject[0][0]);
于 2012-10-23T18:44:11.290 に答える