我真的不知道我在这里错过了什么。我有这个脚本:
<script type="text/javascript">
function ServiceOffer(){
var service_name = $('#service_name').val(),
dataString = "service=" + service_name;
$.ajax({
type: "POST",
url: "posted.php",
data:dataString,
success:function(data){
console.log(data);
}
});
}
$(document).ready(function(){
ServiceOffer();
$(document).on('change','#service_name',function(){
ServiceOffer();
});
});
</script>
这是我的 posted.php
代码
<?php
$connect = mysql_connect('localhost','root','') or die('Unable to connect'.mysql_error());
$select = mysql_select_db('hcs',$connect) or die('Unable to select database'.mysql_error());
$service = $_POST['service'];
$query = mysql_query("SELECT * FROM serviceoffer WHERE servicename = '$service'");
$num = mysql_num_rows($query);
while($rows = mysql_fetch_array($query)){
$data[] = $rows;
}
echo json_encode($data);
那我错过了什么?我认为我的代码中没有附加字符串,它在控制台中提供了字符串,而不是 json 编码数据。请帮忙!谢谢!
编辑:这是在我的控制台中返回的数据。
最佳答案
您有三个选择:
- 将
dataType: 'json'
添加到$.ajax
中的选项。 - 将
header("Content-type: application/json");
添加到 PHP 代码中。 - 在 success 函数中使用
console.log($.parseJSON(data))
。
请注意,如果您还使用了选项 1 或 2,则不应使用选项 3。在前两种情况下,jQuery 会自动解析 JSON,并且您将尝试解析结果,但这不会工作。
关于php - echo json_encode() 无法通过 ajax 调用工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20533048/