这是我调用Ajax请求的代码,而不是一个简单的输入按钮,它在onClick事件上将一些数据发送到一个名为setValue()的函数;
这是代码(JS):
//请求ajax XML
<script type='text/javascript'>
function callAjax(){
var XMLObj = false;
if(window.XMLHttpRequest)
XMLObj = new XMLHttpRequest();
else if(window.ActiveXObject)
XMLObj = new ActiveXObject('Microsoft.XMLHTTP');
if(!XMLObj)
return false;
return XMLObj;
}
//用于ajaxobject句柄的var;
var objAjax = callAjax();
function setValue(value, id, num, item){
if(objAjax){
if(objAjax.readyState == 4 || objAjax.readyState == 0){
objAjax.open('POST', 'addview.php', true);
objAjax.send('value=' + val + '&id='+id+'&num='+num+'&item='+item);
}
}
}
//用于将值发送到函数setValue();
的输入<input type='button' onClick='setValue(1, 2, 3, 4)' />
//这就是我通过php
<?php
if(!$_POST['value'] || !$_POST['id'] || !$_POST['num'] || !$_POST['item'])
exit();
include('config.php');
$value = mysql_real_escape_string($_POST['value']);
$id = mysql_real_escape_string($_POST['id']);
$num = mysql_real_escape_string($_POST['num']);
$item = mysql_real_escape_string($_POST['item']);
mysql_query("UPDATE `window` SET window_val = window_val + ".$value." WHERE window_id = '".$id."' AND window_num = '".$num."' AND window_item = '".$item."' ") or die(mysql_error() );
mysql_close($con);
?>
php脚本正在运行,我尝试手动发送数据($ _GET [''])并且它正在运行。我还检查了带警报的URL('value ='+ value +'&amp; id ='+ id ...),所有变量都是Ok,但不会查询数据库。
如果你看到,我没有为响应添加任何功能,从服务器回复。我只是想发送这些数据并查询数据库。
谢谢!
答案 0 :(得分:1)
你可能会失踪
objAjax.setRequestHeader("Content-type","application/x-www-form-urlencoded");
考虑改进函数名称:callAjax
不调用Ajax,它返回对XHR对象的引用。称之为getXhr
或其更类似于它实际正在做的事情。
如果您对jQuery没问题,请致电
function setValue(value, id, num, item){
$.post('addview.php', 'value=' + val + '&id='+id+'&num='+num+'&item='+item);
// or the cleaner version
$.post('addview.php', {value: val, id: id, num: num, item:item});
}