Ajax不使用javascript.我应该怎么做

Ajax not working with javascript. What am I supposed to do?

本文关键字:我应该 javascript Ajax      更新时间:2023-09-26

这是我调用 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;

}

/

/var for ajaxobject handle;

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['']),它正在工作。我还用alert('value='+value+'&id='+id...)检查了URL,所有变量都正常,但不会查询数据库。

如果你看到,我没有添加任何响应功能,从服务器回复。我只想发送这些数据并查询数据库。

谢谢!

你可能失踪了

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});
}