不从PHP包含的页面发送AJAX表单数据

不从PHP包含的页面发送AJAX表单数据,php,javascript,html,ajax,forms,Php,Javascript,Html,Ajax,Forms,我正在创建一个注册表单,并希望将其包含在主页上的一个div中。主页还包括“登录”表单 这两个表单都包含在页面上,并使用相应div中的php include命令,即: <?php include_once("login.php")?> <?php include_once("signup.php")?> 第二种形式(signup.php): 电邮地址: 创建密码: 确认密码: 这是一个永久性的错误 以及它的ajax: function login(){ //

我正在创建一个注册表单,并希望将其包含在主页上的一个div中。主页还包括“登录”表单

这两个表单都包含在页面上,并使用相应div中的php include命令,即:

<?php include_once("login.php")?>    
<?php include_once("signup.php")?>
第二种形式(signup.php):


电邮地址:
创建密码:
确认密码:

这是一个永久性的错误
以及它的ajax:

function login(){
//isolate the variables from the form
var p = _("password").value;
var e = _("email").value;
var status = _("status");
if(e != "Email" && p != "Password"){
    _("loginbtn").style.display = "none";
    status.innerHTML = 'please wait ...';

//start the Ajax Request

    var ajax = ajaxObj("POST", "login.php");
    ajax.onreadystatechange = function() {
        if(ajaxReturn(ajax) == true) {
            if(ajax.responseText == "login_failed"){
                status.innerHTML = 'There was a problem. Please check your email and password and try again. ';
                _("loginbtn").style.display = "block";
            }  else {
                window.location = "user.php?id="+ajax.responseText; 

            }
        }
    }

//data being sent by the ajax call

    ajax.send("e="+e+"&p="+p);
} else {
    status.innerHTML = "You're missing something..";
}
}

function emptyElement(x){
//The _(x) function is a shortcut for getElementById
    _(x).innerHTML = "";
}

//This jQuery used to pre populate the email and password fields with "email" and "password"
$('input .seachbox').each(function(){
    $(this)
    .data('default', $(this).val())
    .focus(function(){
        if ($(this).val() == $(this).data('default')||''){
        $(this).val() = ''
        }
    })
    .blur(function(){
    var default_val = $(this).data('default');
    if($(this).val() == ''){
        $(this).val($(this).data('default'))
    }
    }); 
});
function signup(){
var e = _("email").value;
var p1 = _("pass1").value;
var p2 = _("pass2").value;
var status = _("status");
if( e == "" || p1 == "" || p2 == ""){
    status.innerHTML = "Fill out all of the form data";
} else if(p1 != p2){
    status.innerHTML = "Your password fields do not match";
} else {
    status.innerHTML = 'please wait ...';
    var ajax = ajaxObj("POST", "signup.php");
    ajax.onreadystatechange = function() {
        if(ajaxReturn(ajax) == true) {
            if(ajax.responseText != "OK"){
                status.innerHTML = ajax.responseText;
                _("signupbtn").style.display = "block";
            } else {
                _("p1").innerHTML = "Please check your email inbox and junk mail box at <u>"+e+"</u> in a moment to complete the sign up process by activating your account. You will not be able to do anything on the site until you successfully activate your account.";
            }
        }
    }
    ajax.send("e="+e+"&p="+p1);
}
函数注册(){
var e=uuux(“电子邮件”)。值;
var p1=U1;(“pass1”).值;
变量p2=u2;(“pass2”).值;
风险值状态=uuux(“状态”);
如果(e==“”| | p1==“”| | p2==“”){
status.innerHTML=“填写所有表单数据”;
}如果(p1!=p2),则为else{
status.innerHTML=“您的密码字段不匹配”;
}否则{
status.innerHTML='请稍候…';
var ajax=ajaxObj(“POST”、“signup.php”);
ajax.onreadystatechange=函数(){
if(ajaxReturn(ajax)=true){
if(ajax.responseText!=“OK”){
status.innerHTML=ajax.responseText;
_(“signupbtn”).style.display=“block”;
}否则{
_(“p1”).innerHTML=“请稍后在“+e+”检查您的电子邮件收件箱和垃圾邮件框,通过激活您的帐户完成注册过程。在您成功激活帐户之前,您将无法在网站上执行任何操作。”;
}
}
}
发送(“e=“+e+”&p=“+p1”);
}

编辑-解决方案:-Have-3天后发现一个如此愚蠢的解决方案,我不得不分享它。基本上,我将状态div的id从“status”更改为“status1”发现现在一切正常。我想可能是因为在登录页面上,我还有一个名为status的div,因此浏览器不确定要将其放入哪个div,而什么也不做。这也解释了为什么signup.php页面在浏览器中单独运行时可以工作,但在主页中包含login.php时却不能工作

故事的寓意——确保你的身份证都是不同的!!
感谢大家的帮助。

这可能只是ajax调用中的一个“输入错误”。在第二个JS代码中,您有“var e=”email“.value;”,而应该是“var e=”email“.value;”谢谢Daniel!这已经折磨了我两天了!还有一个问题-你知道为什么第二个脚本中的“状态跨度”在包含该脚本时可能不会显示AjaxResponseText吗?@Mobaz你为什么不使用一个javascript库,它会让你的生活变得更美好easy@kishore-我最近开始使用JQuery,所以只是习惯了它,但是你右-JQuery中的AJAX调用要简单得多-谢谢
     <form name="signupform" id="signupform" onsubmit="return false;">
      <div>Email Address:</div>
    <input id="emails" type="text" class="searchbox" onfocus="emptyElement('status')" onkeyup="restrict('email')" maxlength="88">
    <div>Create Password:</div>
    <input id="pass1" type="password" class="searchbox" onfocus="emptyElement('status')" maxlength="16">
    <div>Confirm Password:</div>
    <input id="pass2" type="password" class="searchbox" onfocus="emptyElement('status')" maxlength="16">
      </form>           
<br> <a href="#" alt="Signup" onclick="signup()">Create Account</a><p>
<div class="statuserror"><span id="status" >This is a permanent error</span></div>
    </div>      
function signup(){
var e = _("email").value;
var p1 = _("pass1").value;
var p2 = _("pass2").value;
var status = _("status");
if( e == "" || p1 == "" || p2 == ""){
    status.innerHTML = "Fill out all of the form data";
} else if(p1 != p2){
    status.innerHTML = "Your password fields do not match";
} else {
    status.innerHTML = 'please wait ...';
    var ajax = ajaxObj("POST", "signup.php");
    ajax.onreadystatechange = function() {
        if(ajaxReturn(ajax) == true) {
            if(ajax.responseText != "OK"){
                status.innerHTML = ajax.responseText;
                _("signupbtn").style.display = "block";
            } else {
                _("p1").innerHTML = "Please check your email inbox and junk mail box at <u>"+e+"</u> in a moment to complete the sign up process by activating your account. You will not be able to do anything on the site until you successfully activate your account.";
            }
        }
    }
    ajax.send("e="+e+"&p="+p1);
}