大家好我有一个简单的表格,允许用户注册
<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>
想知道我是否在这里做了一些根本性的错误,或者只是我错过了什么?
提前致谢!
编辑 - 更改问题以处理已出现的新问题。
答案 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设置值。
希望这会有所帮助。