1

此函数通过将 iput 字符串与 PHP 从数据库中获取的数据进行比较来正确检查 iput 字符串是否已被使用。我的问题是,当我通过 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。

4

2 回答 2

2

查看查询字符串:

?action=add&name='+name+'codeUp='+codUp'&nocomp='+nocompt_ag

关键是:

  • 动作(值为“添加”)
  • 名称(name变量的值)
  • codeUp(codUp变量的值)
  • nocomp(nocompat_ag变量的值)

要获取发送到服务器的,请使用带有,和的$_GET$_POST$_REQUEST

您应该使用$_GET["codeUp"],因为您在查询字符串中使用的键是“codeUp”。codUp只是保存发送到服务器的“codeUp”键值的 Javascript 变量。

于 2013-04-19T17:19:34.130 回答
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 安全的字符,比如?or &,它会破坏事情

于 2013-04-19T17:24:07.183 回答