我有一个 HTML/JQuery 前端。我希望我的 HTML 页面有一个链接,单击该链接会将数据发布到 php 文件并解码应打印到文档窗口的 JSON 响应。
编辑:
这是我根据 @Kyle 的回答更新的 HTML/JQuery 代码:
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>Demo</title>
<style>
a.test { font-weight: bold; }
</style>
</head>
<body>
<a href="">display message</a>
<script src="jQuery/jQuery.js"></script>
<script>
$(document).ready(function(){
$(function(){
$("a").click(function(e){
e.preventDefault();
getmessage = "Yes";
getmessage = encodeURIComponent(getmessage);//url encodes data
$.ajax({
type: "POST",
url: "http://dev.speechlink.co.uk/David/test.php",
data: {'getmessage': getmessage},
dataType: "json",
success: function(data) {
json = $.parseJSON(data);
$("#message_ajax").html("<div class='successMessage'>" + json.message + "</div>");
}
});
});
});
});
</script>
<div id = "message_ajax"></div>
</body>
</html>
这里是test.php
<?php
if(isset($_POST['getmessage'])){
$dbh = connect();
$message = mysql_real_escape_string($_POST['message']);
$query = mysql_query("SELECT message FROM messages WHERE id = '46'") or die(json_encode(array('message' => "didn't query"));
if($query){
echo json_encode(array('message' => 'Successfully Submitted Data'));
}else{
echo json_encode(array('message' => 'Error Submitting Data'));
}
mysql_close();
}
?>
后端设置得很好...所以我知道问题不在于那里。我认为这是我的语法问题,但我一生都无法让 div 显示响应。我已经尝试了几个小时。我认为潜在的许多问题之一是我没有在 jQuery 函数中正确发布“getmessage”...我是 jQuery 菜鸟,这可能回答了您的大部分问题...
编辑:
使用上面的代码,我设法在按下链接后将以下内容写入文档窗口:
[Object object]
我的问题是如何让它打印 JSON 编码的 PHP 响应中的实际值..
最佳答案
除了已经提到的事情之外,事实上,您的 PHP 脚本不会返回 valid JSON也可能是一个问题。它只是打印
Successfully Submitted Data
到非 JSON 的页面。尝试:
echo json_encode(array('message' => 'Successfully Submitted Data'));
或者使用纯 HTML。
关于php - 获取 JSON - JQuery 和 PHP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6986091/