【发布时间】:2020-10-15 05:55:22
【问题描述】:
如标题所述。我正在使用 JQuery 和 Validate 插件来验证表单中的用户输入。
我正在尝试检查表中的重复值。
为此,我使用以下代码:
$().ready(function(){
//alert('JQuery Functioning');
$("#cat_name").change(function()
{
var cat_name = $("#cat_name").val();
$.ajax({
type:"POST",
url:"ws/cat_duplicate.php",
data:"cat_name="+cat_name,
cache: false,
success: function(html)
{
//alert(html);
if(html == 1)
{
$("#duplicate").html("<br/>Duplicate category Found. Please, Enter Unique Category Name");
$("#add_rec").attr("disabled",true);
}
else
{
$("#duplicate").html("");
$("#add_rec").attr("disabled",false);
}
}
}); //$.ajax({
}); //$("#cat_name").change(function()
$("#frmAddCategory").validate({
rules: {
cat_name: "required"
}, //rules: {
messages: {
cat_name: "<br />Please provide Category Name here"
} //messages: {
}); //$("#frmAddCategory").validate
});
这是 HTML 部分:
<h2>Category Edit</h2>
<form id="frmAddCategory" name="frmAddCategory" method="post" action="">
<table width="25%" border="0" align="center" cellpadding="0" cellspacing="0">
<tr>
<td>ID</td>
<td>Auto Generated</td>
</tr>
<tr>
<td>Category Name</td>
<td><input name="cat_name" type="text" id="cat_name" value="" maxlength="60" /><span id="duplicate"></span></td>
</tr>
<tr>
<td> </td>
<td> </td>
</tr>
<tr align="center" valign="middle">
<td colspan="2"><input type="submit" name="add_rec" id="add_rec" value="Add" />
<a href="cat_list.php">Cancel</a></td>
</tr>
</table>
</form>
我调用的 PHP 代码是:
<?php
if(isset($_POST['cat_name']))
{
require_once('../conn/blog.php');
mysqli_select_db($blog, $database_blog);
$cat_name = $_POST['cat_name'];
$query = "SELECT cat_name FROM category WHERE cat_name = '$cat_name'";
$query_retrived = mysqli_query($blog, $query) or die("Error:".mysqli_error($blog));
$rows = mysqli_fetch_assoc($query_retrived);
$result = mysqli_num_rows($query_retrived);
if ($result>0)
{
echo '1';
}
else
{
echo '0';
}
mysqli_free_result($query_retrived);
}
?>
但在这段代码中,我必须启用或禁用提交按钮。而不是我希望验证插件来处理重复值的检查。
我们怎样才能做到这一点?
TIA
【问题讨论】:
-
你试过 jquery validate remote 方法来达到同样的效果吗?
-
对不起,我不知道远程方法。但我会查一下。感谢您的提示。
-
在代码中使用
die(mysqli_error($conn));是一个非常糟糕的主意,因为它可能会泄露敏感信息。更多解释见这篇文章:mysqli or die, does it have to die?
标签: jquery ajax jquery-validate