-1

次の配列があります。

Array
(
[0] => Array
    (
        [id] => 179
        [user_id] => 191
        [behandeling] => msg
    )
)

何らかの理由で、「behandeling」の値を取得できません..次のようないくつかの方法を試しました:

console.debug(msg[0].behandeling);

配列の構築に関する詳細情報:

$d[] = array('id' => $row['id'],
        'user_id' => $row['user_id'],
        'behandeling' => $row['behandeling']);
//print_r($d);
//echo json_encode($d);

print_r($d) を使用すると、behandeling の値は正しいです。json_encode($d) を使用すると、behandeling の値が null になります。

編集:

私は問題を見つけたと思います..データを送信するとき、データは次のようにエスケープされずに送信されます: var data = 'actie=Wijzig&module=treatment&treatments=' + treatment.val();

これは、エスケープする必要がある特定の文字がある場合、& などを意味します。データ文字列が壊れてしまい、null や半分のメッセージが表示されます...

EDIT2:

上記の調査結果は非常に重要ですが、サイトの別のセクションについて説明しています。現在、データの保存は順調に進んでいますが、一部のメッセージのデータの値を返すのにまだ問題があります..

4

1 に答える 1

0

PHP配列であるコメントで述べたように、次のことを試すことができます:

<script type="text/javascript">
  var myArray = <?=json_encode($array)?>;
  var behandeling = myArray[0].behandleing;
</script>

アップデート:

content-typeヘッダーが原因で、Javascript が JSON を通常の文字列として解釈していると思います。追加してみてください

header('Content-Type: application/json'); 

JSONを出力するとき。

または、何らかの理由でヘッダーを変更できず、jQuery を使用している場合は、次を試すことができます。

var parsed = $.parseJSON(ajaxResults);
var behandling = parsed[0].behandling;

jQuery がなくても使用できますevalが、セキュリティへの影響が伴います。

于 2013-02-05T22:15:48.320 に答える