Javascript Ajax不向php发送信息
当我点击一个按钮时,我试图从我的php代码中获取一些信息,但是它没有连接到php 首页显示在index.php中Javascript Ajax不向php发送信息,javascript,php,jquery,ajax,Javascript,Php,Jquery,Ajax,当我点击一个按钮时,我试图从我的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
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>
服务器端的php就是这样简单的东西:
handler.php:
<?php
echo('Ajax successful!');
?>
您尚未关闭文档准备功能:
$(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");
}
});
});
});
data:JSON.stringify({taskid=1}),
应该是
data:JSON.stringify({taskid:1}),
首先,最好使用更新的jquery版本
您的代码中至少有一个错误:
data:JSON.stringify({taskid = 1})
json应该是
{taskid : 1}
使用冒号,而不是等号。不确定您的jQuery版本是否正确,但通常数据已经可以作为json对象附加,因此整行代码应该可以这样工作:
data: {taskid : 1},
然后,数据在PHP页面中显示为POST数据。请注意,live()函数从1.7开始就不推荐使用。你可以用
$("#getNameBtn").click(function(){...});
相反。此外,我认为您的请求中不需要标题。您需要做的第一个重要更改是使用
$.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;
}
?>
退出非常重要。在返回JSON的PHP文件中,还应该将头设置为JSON
header("Content-Type: application/json"); //Above all HTML and returns
你的问题的真正答案已经得到了回答 你收到错误警报了吗?同时尝试将
响应
从success
回调转储到控制台,以查看输出的内容运行代码时得到的响应是什么?你的回答中有没有“错误Ajaxing”呢?总是检查你的控制台有没有错误。你抢先了我一步!另外,应该使用$.on
而不是$.live
,因为live
已被弃用。@Rutwick您是对的,但他使用的是jquery旧版本。因此,反对不是问题所在。
header("Content-Type: application/json"); //Above all HTML and returns