由于某种原因,我的表单上的一个变量只是没有通过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
)。
我真的可以在这里使用这个帮助,我正在努力解决问题。
答案 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);