2017-08-01 100 views
-1

我有這樣的問題。如何獲得沒有html頁面的Ajax響應?

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

我把#選擇的值與JavaScript和發送與AJAX到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); 

沒有任何問題here.After獲得在PHP中,我從數據庫中選擇我的數據。這裏也沒有問題。但是,當我做json_encode($ array)和console.log(res)到javascript.It給我所有的html頁面與我的陣列。我的問題,我得到的HTML?請幫助我。提前感謝您。

+0

您可以張貼到了,問題PHP? –

+0

很難說沒有看到../../works/addWork.php – mplungjan

+0

$ client_id = $ _POST ['client_val']; $ row_subClient = $ conn-> query(「SELECT'id','''''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); –

回答

0

試着把退出;在後端打印json之後。 HTML由後端發送。所以問題肯定存在。

+0

下面找到我的答案我不明白。請告訴我詳細信息。 –

+0

他的意思是甚至在返回數據或回顯之後,傳遞給下面的代碼。 –

2

因此,您添加了dataType:'JSON',它需要來自addwork.php文件的JSON數據。

所以在你的adwork.php文件中,如果你有一個數組數據,那麼你需要製作一個json數據,這可以在php中用json_encode完成。

$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而不是返回它。 – Spingolini

+0

我有類似的問題。我想要從我的PHP返回的JSON數據。當我添加上述方法時,它解決了我的問題。所以認爲我應該補充一點。 –