表单验证 - JQuery,PHP和MySql - 没有收到数据

时间:2015-01-19 19:50:03

标签: php jquery mysql

我已在表单中添加了一些验证,以避免在我的数据库中出现任何重复的名称条目。我有一个简单的mysql表,有35个条目。使用jquery $.post我连接到数据库,检查input type='text'中的名称是否与表中name字段的名称匹配。它工作得很好,但如果你反复搜索数据库中的名字,代码最终会中断,Chrome会显示这条消息:

no data

这是我的HTML:

<table id="details_table">
                    <tr>
                        <td>Please choose a username:</td>
                        <td><input type="text" id="name" name="name" autocomplete="off" maxlength="10"></td>
                        <td id="text"></td>
                    </tr>
                    <tr>
                        <td>Please select your age range:</td>
                        <td><select id="option01" name="age">
                        <option value="0">Please Select</option>
                        <option value="0_14">0-14</option>
                        <option value="15_24">15-24</option>
                        <option value="25_54">25-54</option>
                        <option value="55_64">55-64</option>
                        <option value="65_over">65 or greater</option>
                        </select></td>
                        <td id="age"></td>
                    </tr>
                    <tr>
                        <td>Please select your gender:</td>
                        <td><select id="option02" name="gender">
                        <option value="0">Please Select</option>
                        <option value="male">Male</option>
                        <option value="female">Female</option>
                        </select></td>
                        <td id="gender"></td>
                    </tr>
                    <tr>
                        <td>Please select your listening device:</td>
                        <td><select id="option03" name="device">
                        <option value="0">Please Select</option>
                        <option value="headphones">Headphones</option>
                        <option value="speakers">Speakers</option>
                        </select></td>
                        <td id="device"></td>
                    </tr>

                </table>

这是我的JQuery:

$(function() {

    $('#name').keyup(function (evt) {

        $('#text').html("");
        var name = $('#name').val();

        $.post('/context_survey/includes/process_name.php', {name_check: name}, function(rows_returned) {

            if (rows_returned != 0) {
                $('#text').html("<b style='color:red'>Name already exists!</b>");
                $('#name').val("");
            } 

        });
    });
    $('#option01').change(function (evt) {
        $('#age').html("");
    });
    $('#option02').change(function (evt) {
        $('#gender').html("");
    });
    $('#option03').change(function (evt) {
        $('#device').html("");
    });
});

这是我的PHP:

require_once("connect.php");

if (!empty($_POST['name_check'])) {

    $name = $_POST['name_check'];

    $sql = "SELECT name FROM users WHERE name='{$name}'";

    if ($result = $db -> query($sql)) {
        $num_rows = $result -> num_rows;
        echo $num_rows;
    }

    $db -> close();
}

1 个答案:

答案 0 :(得分:1)

No data received错误表示您的服务器在发送响应标头之前已关闭连接。它与您的代码完全无关。或者服务器配置错误,并在CGI错误时关闭连接 - 在本例中为PHP解释器。