jQuery $ .post和php'if'语句停止工作 - php

这是非常具体的,我还没有找到答案。
我正在编写脚本来检查是否已经使用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);
});

jQuery Ajax加载仅适用于单个单词变量 - php

在我的PHP文件中,我将一些变量从输入框传递到链接中,该链接通过jQuery的ajax load函数在其URL中使用该变量加载页面。整个系统运行良好,但仅适用于单字变量。每当涉及到空格时,我的Ajax通话都会中断。我假设这是一个编码问题,但是我也有一些疑问。基本上,它归结为我的PHP文件中的这一行代码,这导致了混乱。是否有可能找出格式是否正确,或者为什么在多…

jQuery:仅在有内容的情况下才从.load填充数据? - php

我使用jquery .load函数查询将输出一些数据的php文件。现在有时脚本将不返回任何内容。在这种情况下,可以让load函数不将任何数据放入指定的div吗? (现在,它清除了div并仅放置了一个空白的白色区域。谢谢! 参考方案 尝试使用$ .get;$.get('<url>',{param1:true},function(…

jQuery PHP在函数中传递值与实时单击? - php

我正在尝试通过onclick传递一些值,这对我来说要快得多。但是我需要使用某种“实时”单击,并且正在查看.on()或.delegate()。但是,如果执行这些操作中的任何一个,则在followme()中传递这些值似乎很难。有没有我看不到的某种方法? <div class='btn btn-mini follow-btn' data-…

jquery.post()和php - php

我正在使用$()。post和php来更改的内容。脚本成功执行-萤火虫清楚地表明textarea标记之间的文本已更改,并且我的小警报触发。但是,用户看不到更改。在Firefox中根本不会发生更改,而在IE中,textarea最多可延迟10秒更新。这是我正在使用的jQuery:$(document).ready(function() { $('#pv_…

单行的'if'/'for'语句是否使用Python样式好? - python

我经常在这里看到某人的代码,看起来像是“单线”,这是一条单行语句,以传统的“if”语句或“for”循环的标准方式执行。我在Google周围搜索,无法真正找到可以执行的搜索类型?任何人都可以提出建议并最好举一些例子吗?例如,我可以一行执行此操作吗?example = "example" if "exam" in exam…