我有这样的问题。
<select onchange="select()" id="select">
<option value="1">test 1</option>
<option value="2">test 2</option>
</select>
我将#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);
这里没有任何问题。进入php后,我从数据库中选择我的数据。这里也没有问题。但是当我执行json_encode($ array)和console.log(res)到javascript时它给了我带有我的数组的所有html页面。我的问题是什么,我得到了html?请帮帮我。提前谢谢你。
答案 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);
好吧所以另一个问题是Sergej说你的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>
答案 1 :(得分:0)
尝试退出;在后端打印json之后。 HTML由后端发送。所以问题肯定在那里。