2017-04-17 14 views
1

jQueryを使用してPHPからjson配列を取得したいが、動作していない。jqueryを使ってPHPからjson配列を取得

$json[] = array(
    'status' => 'no', 
    'xxx' => $myhtml 
); 

echo json_encode($json); 

$myhtml

PHPは、HTMLソースです。

jQueryの

$.post('server.php', {'work' : work , 'view_id' : view_id } , function(data){ 
    var json = JSON.parse(data); 
    $('#main-show').html(json.xxx);   
}); 

私はコンソールに配列JSONを持っていますが、未定義json.xxxです。

+0

あなたがアクセスしたときに、それは、何と言っていますブラウザ経由でserver.php? JSONデータはそこにありますか? –

+0

はいコンソールブラウザにJSONデータがあります – Toprex

+0

残りのjQueryコードはどこですか?同様の変数 'work'と' view_id'? jQueryには正しいことが含まれていますか? –

答えて

1

使用JSON.stringify()phpコードもすなわち、変更された:

HTML:

<!DOCTYPE html> 
<html lang="en"> 
<head> 
    <meta charset="UTF-8"> 
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.0/jquery.min.js"></script> 
</head> 
<body> 

<div id="main-show"></div> 
<script> 
    work = "test"; 
    view_id = "test2"; 
    $.post('json.php', {'work' : work , 'view_id' : view_id } , function(data){ 
     var json = JSON.parse(JSON.stringify(data)); 
     $('#main-show').html(json.xxx); 
    }); 
</script> 
</body> 
</html> 

は、PHP:

<?php 
header('Content-Type: application/json'); 
$myhtml = '<p> TEST </p>'; 
$json = array(
    'status' => 'no', 
    'xxx' => $myhtml 
); 
echo json_encode($json); 
1

追加の外部配列を作成しています。

あなたの現在のJSONは次のようになり

$json = array(
    'status' => 'no', 
    'xxx' => $myhtml 
); 

:だから

$('#main-show').html(json[0].xxx); 

が必要になります。しかし、おそらくするためにPHPを変更するために容易になるだろうアクセスに

[ 
    {"status" : "no", "xxx" : "html string"} 
] 

jsonでエンコードすると、次のようになります。

{"status" : "no", "xxx" : "html string"} 
関連する問題