2017-08-01 18 views
-1

私はこのような問題があります。htmlページなしでajaxレスポンスを取得するには?

<select onchange="select()" id="select"> 
    <option value="1">test 1</option> 
    <option value="2">test 2</option> 
</select> 

私は、JavaScriptを使用して#selectの値を取り、here.Afterは、PHPになっても問題はありません

var clientVal = $('#select').val(); 
    $.ajax({ 
     type:'post', 
     url:'../../works/addWork.php', 
     dataType:'JSON', 
     data:{ 
      client_val:clientVal 
     }, 
     success:function (res) { 
      console.log(res); 
     } 
    }) 

PHP

$client_id = $_POST['client_val']; 
$row_subClient = $conn->query("SELECT `id`,`name` from `subClient` where `client_id`=$client_id"); 
$sub_client_arr = []; 

while($result_client = $row_subClient->fetch_assoc()){ 
    $sub_client_arr[$result_client['id']] = $result_client['name']; 
} 
echo json_encode($sub_client_arr); 

をPHPにAJAXを送ります私はデータベースから選択します。私のdatas.Thereもここで問題はありません。しかし、私はjson_encode($配列)、およびjavascript. console.log(res)を行うとき私の配列を持つすべてのHTMLページを返します。 、私はhtmlで手に入りますか?助けてください。事前に感謝します。

+0

によってその問題を来ることができるかもしれないと述べたとして、あなたが投稿することができますので、別の問題PHP? –

+0

../../works/addWork.phpを見ることなく伝えるのは難しい – mplungjan

+0

$ client_id = $ _POST ['client_val'];$ row_subClient = $ conn-> query( "SELECT" id "、' subClient'から 'name'、ここでは' client_id' = $ client_id "); $ sub_client_arr = []; while($ result_client = $ row_subClient-> fetch_assoc()){ $ sub_client_arr [$ result_client ['id']] = $ result_client ['name']; } echo json_encode($ sub_client_arr); –

答えて

0

出口を出そうとする。あなたがバックエンドでjsonを印刷した後。 HTMLはバックエンドによって送信されます。問題は間違いありません。

+0

私は理解していません。詳細を教えてください。 –

+0

あなたがデータを返すか、エコーした後でさえ、彼が意味することは、以下のコードに渡されたことです。 –

2

これでaddwork.phpファイルのJSONデータが必要なdataType: 'JSON'が追加されました。

adwork.phpファイルに配列データがある場合は、json_encodeでphpで実行できるjsonデータを作成する必要があります。

$arrayData = array(
'key' => 'value', 
'key' => 'value', 
'key' => 'value', 
'key' => 'value' 
); 

To encode this in php you can use 

header('Content-Type: application/json'); 
return json_encode($arrayData); 

オーケーセルゲイは問題があなたのPHPで次のようにあなたが

echo json_encode($arraDetails); 

<html content below here> 

をやっファイルあなたはオーバー

echo json_encode($arraDetails); 
exit; // This will make sure that the below content won't execute 
<html content below here> 
+0

'dataType:" json "'が設定されている場合、ヘッダーは必ずしも必要ではありません。コードが関数に囲まれていない場合、コード化されたjsonを返すのではなく、 'echo'する必要があります。 – Spingolini

+0

私は同様の問題を抱えていました。私は私のPHPから戻ってくるはずのJSONデータが必要な場所。私は上記のアプローチを追加すると、私の問題を解決しました。だから私はそれを追加すべきだと思った。 –

関連する問題