我正在尝试从单击按钮时从我的php代码中获取一些信息,但它没有连接到php。
首页显示在index.php中 的index.php:
<!DOCTYPE html>
<html>
<head>
<link rel="stylesheet" type="text/css" href="mystyle.css">
<script type="text/javascript" src="jquery-1.4.4.min.js"></script>
<script type="text/javascript" src="functions.js"></script>
<title>Account Panel</title>
</head>
<div "getInfos">
<h2>In this section you can get your inforrmation</h2>
<button id="getNameBtn">Get Your Name!</button>
<span id="getNameSpan"> something must come here</span>
</div>
</body>
</html>
javascript代码和ajax在 functions.js:
$(document).ready(function(){
$("#getNameBtn").live('click', function() {
$.ajax({
type: 'POST',
url: 'handler.php',
data:JSON.stringify({taskid = 1}),
headers: {
'content-type': 'application/json'
},
success: function(response) {
document.getElementById('getNameSpan').innerHTML = response;
},
error: function() {
alert("Error Ajaxing");
}
});
});
在服务器端的和php是一个简单的事情:
handler.php:
<?php
echo('Ajax successful!');
?>
答案 0 :(得分:3)
您尚未关闭文档就绪功能:
$(document).ready(function(){
$("#getNameBtn").live('click', function() {
$.ajax({
type: 'POST',
url: 'handler.php',
data:JSON.stringify({taskid = 1}),
headers: {
'content-type': 'application/json'
},
success: function(response) {
document.getElementById('getNameSpan').innerHTML = response;
},
error: function() {
alert("Error Ajaxing");
}
});
});
});
答案 1 :(得分:2)
data:JSON.stringify({taskid = 1}),
坚持
data:JSON.stringify({taskid: 1}),
答案 2 :(得分:1)
首先,您应该更好地使用较新的jquery版本。
您的代码中至少有一个错误:
data:JSON.stringify({taskid = 1})
json应该阅读
{taskid : 1}
使用冒号,而不是等号。不确定你的jQuery版本是否属实,但通常数据可以作为json对象附加,所以整行应该如此:
data: {taskid : 1},
然后数据在PHP页面中显示为POST数据。请注意,自1.7以来,不推荐使用live()函数。你可以使用
$("#getNameBtn").click(function(){...});
代替。此外,我认为您的请求中不需要标题。
答案 3 :(得分:0)
您需要做的第一个重要更改是使用$.on
而不是$.live
,因为后者已被弃用。如果handler.php
文件与JS / HTML文件处于同一级别,则应检查另一件事。可能是您的代码无法访问该文件。您可以尝试以下方法:
$(document).ready(function(){
$("#getNameBtn").on('click', function() {
$.ajax({
type: 'POST',
url: 'handler.php',
data: { call: 'myAjax', taskid : 1 },
headers: {
'content-type': 'application/json'
},
success: function(response) {
$('#getNameSpan').html(response);
},
error: function() {
alert("Error Ajaxing");
}
});
});
});
在PHP文件中,您可以检查call
密钥:
<?php
if(isset($_POST) && $_POST['call'] == 'myAjax') {
echo $_POST['taskid'];
exit;
}
?>
exit
非常重要。
答案 4 :(得分:0)
在返回JSON的PHP文件中,您还应将标头设置为JSON。
header("Content-Type: application/json"); //Above all HTML and returns
问题的真正答案已经得到解答。