我已在表单中添加了一些验证,以避免在我的数据库中出现任何重复的名称条目。我有一个简单的mysql
表,有35个条目。使用jquery $.post
我连接到数据库,检查input type='text'
中的名称是否与表中name
字段的名称匹配。它工作得很好,但如果你反复搜索数据库中的名字,代码最终会中断,Chrome会显示这条消息:
这是我的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();
}
答案 0 :(得分:1)
No data received
错误表示您的服务器在发送响应标头之前已关闭连接。它与您的代码完全无关。或者服务器配置错误,并在CGI
错误时关闭连接 - 在本例中为PHP
解释器。