各位大虾,我现在遇到一个有关js调用ajax和弹出confirm提示框的问题,有点儿麻烦,具体情况如下:我写了4个文件,其中request.php是一个页面,里面有3个参数:name,application 和 role,其中name是可以填写的text,application 和 role 是两个可以选择的 select。然后页面上有个叫做 "request send" 的 button,点击这个按钮就触发了request.js里的doSend()函数。request.js里的doSend()函数具体代码如下:function doSend(name, application,role){ 
    if (document.getElementById("application_select").selectedIndex == 0) {
alert("Please select an application.");
return;
    }
    if (document.getElementById("role_select").selectedIndex == 0) {
alert("Please select a role.");
return;
    }
    submit(name, application,role); 
}然后在submit()函数里调用了ajax.request.php,具体代码如下:function submit(name, application, role){ 
    var message;
    var messageBold;
    var result;
    xmlHttp = GetXmlHttpObject(); 
    if (xmlHttp == null) { 
        alert ("Your browser does not support AJAX!");
return; 
    } 
    xmlHttp.onreadystatechange = function(){ 
if(xmlHttp.readyState == 4){ 
    result = xmlHttp.responseText;
    if (result.substring(result.length-4) == "true") {
       alert("Registration is successful.");
            }
    else {
alert(result); 
    }
    window.opener=null; 
    window.open('', '_self'); 
    window.close(); 
    } 
}
var url = "ajax/ajax.request.php"; 
xmlHttp.open("post",url,true); 
xmlHttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=utf-8"); 
xmlHttp.send("name="+name+"&application="+application+"&role="+role); 
} 然后ajax.request.php里代码如下:$name  = $_POST['name'];
$application     = $_POST['application'];
$role  = $_POST['role'];
$requestManager->StartRequest($name, $application, $role);//这里调用了class.requestManager.php里的函数,成功执行后会返回"true"现在的问题是,在点击"request send" 按钮后,要先在数据库里判断一下,是否这个name已经申请过这个application了,如果申请过了的话,就要弹出一个confirm提示框,询问是否真的要重新申请(重新申请后原来申请的会被覆盖掉)。我的想法是在调用StartRequest函数前,通过添加js代码来实现弹出confirm提示框的功能,但是由于是在ajax里,所以不能正确运行js代码。第二个想法是,在request.js里,调用submit函数之前实现这一功能,但是我不知道如何在js里调用php函数(数据库里判断是否申请过的函数在一个叫做class.datenbankManager.php的文件里)。请问我应该怎样实现这个功能呢?各位大虾请指教,多谢多谢~!

解决方案 »

  1.   

    提交数据前先发一个请求看下这个name有没有申请过,然后再决定要不要提交
      

  2.   

    datenbankManager.php中的函数也和StartRequest($name, $application, $role);//这里调用了class.requestManager.php里的函数一样写在ajax.request.php文件中,然后通过先调用判断方法,根据判断结果及js的confirm反馈决定是否调用StartRequest方法。
      

  3.   

    谢谢LS两位,问题解决了,基本上是参照waiting593大虾提供的方法。