[英]JQuery $.post & php 'if' statement stops working
这是非常具体的,我还没有找到答案。
我正在编写脚本来检查是否已经使用JQuery $ .POST将名称输入到SQL Server中。
前端看起来像这样:
register.php
<div id="container" class="container">
<div id="wrapper" class="wrapper">
<div id="title" class="title">
Welcome to Taskar!
</div>
<div id="login" class="login">
<form method="post" action="registermembers.php">
<div id="exists">
Register Your Company Below:
</div>
<input type="text" id="company" name="company" value="Company Name"/> <br />
<br />
<input type="text" id="password" name="password" value="Default Password"/> <br />
<input type="submit" name="submitcompany" value="Submit" />
</form>
<script>
$(document).ready(function() {
$('#company').keyup(function() {
var $company = $(this).val();
var $reg = $('#exists').html();
$.post('include/reg_post.php', { company: $company, reg: $reg }, function(company) {
$('#exists').html(company);
});
});
});
</script>
</div>
</div>
</div>
后端代码如下所示:
reg_post.php
<?php
include 'include/db.php';
$reg = $_POST['reg'];
$company = $_POST['company'];
$email_hash = $_COOKIE['email_hash'];
$password = $_COOKIE['password'];
$sql = "SELECT * FROM taskar_employee WHERE (company = '$company')";
$result = mysql_query($sql) or die(mysql_error());
if(mysql_num_rows($result) <= 1){
echo $reg;
} else {
echo "This Company Already Exists!";
} ?>
现在,我遇到的问题是,当我对此进行测试时,直到我键入数据库中的公司名称时,它一直可以正常工作。 它向我显示该公司已经注册。 当我按Backspace键或键入另一个字母时,它仍然告诉我该公司仍然存在,尽管显然不存在。
似乎if语句希望在获得相反的语句后停止$ .post功能的继续?
你们有什么感想?
您的问题出在使用$reg
变量的方式上。
$reg
包含#exists
div的HTML内容,因此它首先是“在下面注册您的公司:”。 但是,一旦您找到了确实存在的公司名称,就可以将HTML替换为“该公司已存在!”。 从那时起,在JavaScript和PHP方面, $reg
始终是“该公司已存在!” (因为您总是在POST中传递$reg
)。
如果该div的内容完全不传递给PHP代码或由PHP代码处理,则可能会容易得多。 如果您的PHP脚本仅返回“ 1”(如果该公司存在),然后返回“ 0”(如果不存在)(或其他一些同样简单的标志),则会更简单。
然后,在JavaScript方面,您可以执行以下操作:
$.post('include/reg_post.php', { company: $company }, function(exists) {
var message;
if (exists === '1') {
message = 'This Company Already Exists!';
}
else {
message = 'Register Your Company Below:';
}
$('#exists').html(message);
});
您正在传递$('#exists').html();
如果找不到公司,将被退回。 问题是,如果找到公司,则替换#exists
的html。 然后,下次您致电该帖子时,会将文本传递回去,因此在这种情况下:
if(mysql_num_rows($result) <= 1){
echo $reg;
} else {
echo "This Company Already Exists!";
}
您的$reg
现在设置为“ This Company Already Exists!
因此无论发生什么情况,您都将返回该文本。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.