AJAX/XMLHTTP函数问题

AJAX/XMLHTTP函数问题,ajax,xmlhttprequest,Ajax,Xmlhttprequest,我真诚地提前道歉,因为这是我第一次去阿贾克斯。简单地说,我在一个网页上有两个表单。点击一个按钮,第一个表单就会被提交。我使用onclick事件提交第二个表单,但在提交第二个表单之前,我向第一个表单的数据库服务器发出xmlhtt请求以验证记录是否存在。我尝试通过Javascript调用PHP函数,但没有成功。然后我告诉阿贾克斯,这是最好的选择。但我从来不知道那是什么动物。因此,我根据一个在线教程得出以下结论: <script> function verypost() { if (w

我真诚地提前道歉,因为这是我第一次去阿贾克斯。简单地说,我在一个网页上有两个表单。点击一个按钮,第一个表单就会被提交。我使用onclick事件提交第二个表单,但在提交第二个表单之前,我向第一个表单的数据库服务器发出xmlhtt请求以验证记录是否存在。我尝试通过Javascript调用PHP函数,但没有成功。然后我告诉阿贾克斯,这是最好的选择。但我从来不知道那是什么动物。因此,我根据一个在线教程得出以下结论:

<script>
function verypost() {
  if (window.XMLHttpRequest) {
     xmlhttp = new XMLHttpRequest();  }
  else  { xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");}
  xmlhttp.onreadystatechange = function() {
            if (this.readyState == 4 && this.status == 200) {
             var gigs = this.responseText;
                if (gigs!="")
                      { document.getElementById("ukpform").submit(); }

                 else { alert ("Very sorry , we encountered a slight error in uploading your ad. Can you please try again? Many thanks.");  }
       }

           else {alert("We are sorry your ad did not post successfully. It may be due to javascript being disabled in your browser. Please can you try again making sure javascript is enabled on your computer. Thanks"); }
        };

       xmlhttp.open("GET", "postchecker.php?gt="+<?php echo $SRID ?>, true);
       xmlhttp.send();
    }
</script>


<?php

$q = intval($_GET['q']);

$result; $db="freemar5_fmsdb";
$link = mysql_connect('localhost', 'fmxxxx','hhdhdhfhdh');
if (! $link) die(mysql_error());
 mysql_select_db($db , $link) or die("Couldn't open $db: ".mysql_error());
$result = mysql_query( "SELECT  ID FROM msadtable WHERE  ItemNo='$q'" ) or die("SELECT Error: ".mysql_error());

$row = mysql_fetch_array($result) ;
    $id = $row['ID'];

echo $id;

mysql_close($link);

?>


<input id="ukp" name="ukp" type="button" class="telbt" value="->>  PAY and SUBMIT  <<-" onclick="verypost();" >

函数verypost(){
if(window.XMLHttpRequest){
xmlhttp=newXMLHttpRequest();}
else{xmlhttp=newActivexObject(“Microsoft.xmlhttp”);}
xmlhttp.onreadystatechange=函数(){
if(this.readyState==4&&this.status==200){
var gigs=this.responseText;
如果(演出!=“”)
{document.getElementById(“ukpform”).submit();}
else{alert(“非常抱歉,我们在上传您的广告时遇到了一个小错误。您能再试一次吗?非常感谢。”);}
}
else{alert(“很抱歉,您的广告未成功发布。这可能是由于您的浏览器中禁用了javascript。请重试,确保您的计算机上已启用javascript。谢谢”);}
};
open(“GET”,“postchecker.php?gt=“+,true”);
xmlhttp.send();
}

请使用jQuery而不是JavaScript

$.ajax({
    type: "POST",
    url: 'postchecker.php',
    data: {name: 'abhi'},
    success: function(data){
        alert(data);
    }
});

大家好,各位大师

我认为我的问题不受欢迎,所以我开始考虑其他选择,我成功了。我已经能够使用PHP会话变量来实现我的目的。我在登录页上设置了一个会话变量,如果它在数据库中找到从第一个表单发布的数据,它将被一个小PHP代码更新/覆盖。然后,我在表单上添加了一个小脚本,用于在提交第二个表单之前检查会话变量是否已更新。如果未更新,则表示第一个表单中的数据未成功插入数据库,因此将不会提交第二个表单


无论如何,谢谢你们大家

我衷心建议不要重新实现从多个经过尝试和测试的库中随时可用的功能。使用Ajax库(比如
request.js
),你学习这类东西的时间将大大增加。我还建议不要将数据库密码发布到网上。