2

セッション配列をphpからjavascriptに取得するのに問題があります

ここでセッション配列を設定しています。print_rこれはチェック専用であるため、正しいです

  while($row2[]=mysql_fetch_array($result2))
    $_SESSION['row2'] = $row2; 
  print_r($_SESSION['row2'][0][0]);
  print_r($_SESSION['row2'][0][1]);
  print_r($_SESSION['row2'][0][2]);

私のjavascriptではこれを使用していますが、アラートはチェック専用です

 var row2 =<?php echo json_encode($_SESSION['row2']) ?>;
 alert (row2[0][0]);
 alert (row2[0][1]);
 alert (row2[0][2]);

row2[0][0]そしてrow2[0][1]、正常に動作します。配列から数値を取得しますがrow2[0][2]、値がnullになります。このフィールドにはテキストが含まれている必要があります。phpprint_r($_SESSION['row2'][0][2]);コードで正常に動作します。

4

3 に答える 3

1

FirebugコンソールまたはChromeコンソールを使用してください。その後、全体row2をコンソールにダンプし、データをプレビューします。

// JavaScript
var row2 =<?php echo json_encode($_SESSION['row2']) ?>;
console.debug(row2);

また、すべてのPHP連想配列はJSONオブジェクトになり、次のコマンドでアクセスする必要があることに注意してください。.

于 2012-04-10T13:57:25.120 に答える
0

配列をエンコードする必要がありますが、結果は文字列であることに注意してください。そのため、配列を一重引用符で囲んでから、オブジェクトに解析する必要があります。

var row2 = '<?php echo json_encode($_SESSION['row2']) ?>';
row2 = JSON.parse(row2);
于 2012-04-10T14:02:32.840 に答える
0

Alexが述べたように、PHPへの連想配列がある場合、json_encodeの出力は同じにはなりません。

それが問題である可能性はありますか?連想キーを使用していないように見えるため、mysql_fetch_arrayの使用を避け、代わりにmysql_fetch_rowを試すことができます。

(Nb:あなたのコードは奇妙です)

于 2012-04-10T14:02:33.613 に答える