Ajax没有向php发送信息
Ajax not sending info to php
我想从我的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!');
?>
您还没有关闭文档准备功能:
$(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;
}
?>
那个exit
真的很重要。
在返回JSON的PHP文件中,您也应该将标题设置为JSON。
header("Content-Type: application/json"); //Above all HTML and returns
你的问题的真正答案已经有答案了。
相关文章:
- 获取html表单信息并使用ajax将其推送到PHP
- 使用 jQuery 从运行 MySQL 的 PHP 脚本返回信息
- JQuery load() 注入到 DIV 中的 PHP 文件能否找到有关此 DIV 的任何信息
- 使用 JS 和 PHP 从数据库中获取信息
- php中的JavaScript函数,在点击时显示更多信息(数据库查询)
- 无法让 ajax 使用 PHP 从 MySQL 加载信息表
- 如何附加一个id's的详细信息只通过php或jquery提供一次
- 从PHP向JavaScript函数发送信息
- Ajax使用来自PHP的信息
- HTML5,CSS3,PHP联系人表单不发送信息+添加必填字段
- PHP: header() 函数不重定向.使用 HTML 或 JavaScript 重定向时,会话信息会丢失
- 按钮,显示 PHP 中表的选定行的完整信息
- 没有文件写入的 PHP 脚本正在删除文件信息
- 使用php的维基百科API只能获取有关企业的信息
- 获取邮件中的信息.php从函数.js解析为manage.html
- PHP:将信息传递给 JavaScript
- 当新信息写入文件时,如何使用 PHP 动态读取文件
- 如何使用PHP / CURL / Javascript等从 mca.gov.in 获取公司详细信息
- facebook PHP或Javascript获取用户登录信息
- 如何在标头重定向之前通过 ajax 从 php 文件中检索信息