javascript - 在非 jQuery 函数中使用 jQuery post 时出现问题

标签 javascript jquery post

我在 HTML 页面中有以下脚本:

<script>

function Test(){

alert("i got here");

 var username = document.registration_form.username.value;

 alert(username);

 $.post("checkname.php", { name:  username }, function(data) {

   alert("and here");

   alert(data);

   if (data = "0"){
       alert('That username is already in use, please choose another');
    return false;
   };
   if (data = "1") {
    return true;   
   };

});
};

</script>

如果用户名已在我的数据库中,我正在尝试让函数测试返回 true 或 false。

checkname.php 包含以下内容:

<?

$host="localhost"; // Host name
$username=""; // Mysql username
$password=""; // Mysql password
$db_name=""; // Database name

mysql_connect("$host", "$username", "$password")or die("cannot connect");
mysql_select_db("$db_name")or die("cannot select DB");

$myusername=$_POST['name'];


$sql="SELECT * FROM members WHERE username='".$myusername."'";


$result=mysql_query($sql);


$count=mysql_num_rows($result);


if($count >= 1){
echo "0";
}
else {
echo "1";
}

?>

我尝试过对名称进行硬编码并运行 PHP,效果很好。

出于某种原因,尽管当我运行 Test() 时,前两个警报正常运行,显示输入的用户名,但后续警报均未出现。

Oooo 和 jQuery 已添加到 header 中,如下所示:

<script src="create/js/jquery-1.4.4.min.js" type="text/javascript" ></script>
<script src="create/js/jquery-ui-1.8.7.custom.min.js" type="text/javascript"></script>

非常感谢任何帮助:)

最佳答案

首先,从回调到 $.post 的返回语句将不会从 Test() 函数返回。您应该使用处理来自服务器的数据的回调函数来调用 Test,如下所示:

function Test(username, callback) {
  $.post("checkname.php", {name: username}, callback);
}

Test(document.registration_form.username.value, function(data) {
  if(data == "0") {
    // Do something
  } else {
    // Do something else
  }
});

Brad 对于比较的看法也是正确的 - 您当前正在为数据分配“0”。我认为,即使存在其他错误,您也应该收到警报。也许您需要 checkname.php 脚本的绝对路径?例如。 “/checkname.php”(注意斜杠)?

关于javascript - 在非 jQuery 函数中使用 jQuery post 时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5168739/

相关文章:

javascript - 避免影响加载列表

php - 如何动态更改 jquery ui slider 的最小值、最大值?

javascript - 如何忽略 jQuery 移动样式?

php - 无法将选择选项值放入 jQuery post 中

javascript - Jshelper cakephp 未从元素获取数据

python - Flask:使用 POST 方法存储值并使用 GET 方法检索它

javascript - 单击使用Dojo时如何获取父div?

javascript - 从 javascript 数组中删除元素会导致问题

javascript - 如何处理多个 Promise 链中的 Google Maps API V3 事件?

javascript - 如何在弹出模式中仅显示外部 html 文件中的一个 div id?