我正在尝试实时查询数据库,以验证输入的数字是唯一的。
这是我构建html的php。
echo "<form action=create_materials.php method=post>";
echo "<table border=0 cellpadding=2 cellspacing=2 align=center>";
echo "<tr><td></td><td><input type=hidden size=20 name=action value=\"addupdate\"></td></tr>";
echo "<tr><td></td><td><input type=hidden size=20 name=subcreatematerial value=\"1\"></td></tr>";
echo "<tr><td></td><td><input type=hidden size=20 name=prodid value=" . $product['prodid'] . "></td></tr>";
echo "<tr><td></td><td><input type=hidden size=20 name=id value=" . $product['prodtype'] . "></td></tr>";
echo "<tr><td><input type=text size=10 id = 'cubcode' name=cubcode value = '".$form->value("cubcode")."'></td><td>".$form->error("user")."</td></tr>";
echo "<tr><td class=tabclearleft><b>Description</b></td><td><input type=text size=50 name=description value = '".$form->value("description")."'></td></tr>";
...
echo "<tr><td></td><td><input type=submit border=0 value=\"Submit\"></td></tr>";
echo "</table>";
echo "</form>";
这是我的jquery。
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
<script src="//ajax.googleapis.com/ajax/libs/jqueryui/1.10.3/jquery-ui.min.js"></script>
<script>
$(function() {
$('#cubcode').focusout(function() {
var cubcode = $(this).val();
$.post('checkcubcode.php', { cubcode: cubcode }, function(data){
if (data == '0') {
alert("Successful");
}
else {
alert ('Failed');
}
});
});
});
</script>
最后,这是我从jquery
调用的php代码include("include/session.php");
function mysql_evaluate($query, $default_value=0) {
$result = mysql_query($query);
if (!$result ||mysql_num_rows($result) == 0) {
return $default_value;
}
else {
return mysql_result($result, 0);
}
}
if ($_POST && isset($_POST['cubcode'])) {
// sanitize the value
$cubcode = mysql_real_escape_string($_POST['cubcode']);
// start the query
$sql = "select count(*) from materials where cubcode = '".$cubcode."'";
$result = mysql_evaluate($sql);
return $result;
}
当我跳出cubcode文本框
时,没有激活任何警报答案 0 :(得分:0)
我注意到你的代码中有行返回$ result;但是它不在任何特定的函数中,如果你使用的是return关键字,它将不会输出结果。
您需要添加echo命令才能输出结果。否则将不会显示任何内容。
echo $result;
我注意到您添加的JavaScript代码的另一件事。它最后有一个额外的右括号。
);
应该删除
Google Chrome和Firefox都有很好的工具来捕获这些错误。使用Google Chrome上的开发人员工具和Firefox上的Firebug来帮助您验证代码。还有许多Javascript Linters,例如JSLint,可以与不同的开发环境集成,可以帮助您验证这些内容。