此函数通过将输入字符串与数据库中PHP拾取的数据进行比较,正确检查输入字符串是否已被使用。我的问题是,当我通过Ajax传递此变量时,它返回'NULL',但是当我传递其他变量时,它们被正确发送,因此ajax函数正在工作。也许我的职能中的某些事情应该受到指责?
var string, code, codUp, result;
function check(){
string="<?php echo $html; ?>";
code = document.getElementById('this_code').value;
codUp = code.toUpperCase();
result=string.split(" ");
if (document.getElementById('this_code').value === "")
{
return false;
}
else if (result.indexOf(codUp) === -1)
{
return false;
}
else{alert ('Code already in use.');}
};
AJAX
ajax.open('GET','agencies/gen_ag.php?action=add&name='+name+'codeUp='+codUp+'&nocomp='+nocompt_ag,true);
PHP
if($_GET['action']=='add') {
$res_seecode = mysql_query("SELECT * FROM agencies WHERE EMP_CODE = '$_GET[code]'");
if(!mysql_num_rows($res_seecode)) {
$res_add = mysql_query("INSERT INTO agencies VALUES ('NULL','$_GET[codUp]','$_GET[name]'");
echo 'Agencie created.';
}
Var_dump();
返回名称但不返回codUp。
答案 0 :(得分:2)
查看查询字符串:
?action=add&name='+name+'codeUp='+codUp'&nocomp='+nocompt_ag
键是:
name
变量的值)codUp
变量的值)nocompat_ag
变量的值)要将值发送到服务器,请将密钥与$_GET
,$_POST
和$_REQUEST
一起使用。< / p>
您应该使用$_GET["codeUp"]
,因为您在查询字符串中使用的密钥是“codeUp”。 codUp
只是一个Javascript变量,它保存了为“codeUp”键发送到服务器的值。
答案 1 :(得分:1)
除了确保变量名称匹配(您仍然在一个查询中引用code
)之外,您还应该对您的值进行URL编码...#
ajax.open('GET','agencies/gen_ag.php?action=add&name='+encodeURIComponent(name)+'codeUp='+encodeURIComponent(codUp)'&nocomp='+encodeURIComponent(nocompt_ag),true);
请注意使用encodeURIComponent()
- 否则,如果您的姓名包含非{url-safe}字符,例如?
或&
,则会破坏内容