PHP没有从表单中获取变量

时间:2014-01-16 21:13:03

标签: php ajax forms variables

大家好我有一个简单的表格,允许用户注册

  <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')">
    <button id="signupbtn" onclick="signup()">Create Account</button>
    <span id="status"></span>
  </form>

但是,我在其中一个表单部分遇到问题,公司名称没有被提交给变量,我知道这是因为我在ajax中使用以下代码进行检查。

if(u == "" || e == "" || p1 == "" || p2 == "" || c == "" || cid == "" || cn == ""){
status.innerHTML = "Fill out all of the form data";

现在,奇怪的是我确定我正确保存变量。表单应调用以下ajax函数。

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']);
$c = preg_replace('#[^a-z ]#i', '', $_POST['c']);

但它继续运行到其他地方,如果,甚至当我删除它时,没有数据被提交到数据库的compname($ cn)ONLY,每个其他变量都被发送并存储在数据库中,除了$ cn。< / p>

想知道我是否在这里做了一些根本性的错误,或者只是我错过了什么?

提前致谢!

编辑 - 更改问题以处理已出现的新问题。

2 个答案:

答案 0 :(得分:3)

问题出在你的AJAX电话上:

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

答案 1 :(得分:0)

如果条件有变量c而您的注册函数中没有为变量c设置值。

希望这会有所帮助。