我的AJAX表单中缺少一个字段

时间:2014-01-16 21:51:36

标签: php ajax forms variables

由于某种原因,我的表单上的一个变量只是没有通过PHP,我不明白为什么。

<form name="signupform" id="signupform" onsubmit="return false;">
    <div>Username: </div>
    <input id="username" type="text" onblur="checkusername()" onkeyup="restrict('username')" maxlength="16">
    <span id="unamestatus"></span>
    <div>Email Address:</div>
    <input id="email" type="text" onfocus="emptyElement('status')" onkeyup="restrict('email')" maxlength="88">
    <div>Create Password:</div>
    <input id="pass1" type="password" onfocus="emptyElement('status')" maxlength="16">
    <div>Confirm Password:</div>
    <input id="pass2" type="password" onfocus="emptyElement('status')" maxlength="16">
    <div>Unique Company ID:</div>
    <input id="companyID" type="number" onfocus="emptyElement('status')">
    <div>Company Name:</div>
    <input id="compname" type="text" onfocus="emptyElement('status')">
    <div>Country:</div>

这将调用ajax,其中设置了变量并使用send发送。如下

function signup(){
    var u = _("username").value;
    var e = _("email").value;
    var p1 = _("pass1").value;
    var p2 = _("pass2").value;
    var cid = _("companyID").value;
    var cn = _("compname").value;
    var status = _("status");

设置变量并将其放入发送代码中:

ajax.send("u="+u+"&e="+e+"&p="+p1+"&c="+c+"&cid="+cid+"&cn"+cn);

然后引导到PHP,它们在PHP中被设置为变量:

// GATHER THE POSTED DATA INTO LOCAL VARIABLES
$u = preg_replace('#[^a-z0-9]#i', '', $_POST['u']);
$e = mysqli_real_escape_string($db_conx, $_POST['e']);
$p = $_POST['p'];
$cid = preg_replace('#[^0-9]#', '', $_POST['cid']);
$cn = preg_replace('#[^a-z0-9.\- ]#', '', $_POST['cn']);

但是if if语句会继续触发几行。

else if ($cn == ""){
    echo "There is no variable in company name";
    exit();

当我去检查我的数据库时,在我注释掉这个if语句之后,我在公司名称字段中看不到任何内容,但所有其他变量都在那里。唯一不起作用的变量是compname($cn)。

我真的可以在这里使用这个帮助,我正在努力解决问题。

1 个答案:

答案 0 :(得分:4)

你在这一行中缺少一个等号:

ajax.send("u="+u+"&e="+e+"&p="+p1+"&c="+c+"&cid="+cid+"&cn"+cn);

变为

ajax.send("u="+u+"&e="+e+"&p="+p1+"&c="+c+"&cid="+cid+"&cn="+cn);