我是一个 JQuery/JS 新手,并且在使用简单的 .blur() 事件调用时遇到了麻烦。
基本上,我有一个 html 表单,其输入具有“id='validate'”,应该调用 php 脚本来验证在数据库中表单的输入元素中输入的内容是否存在。
任何帮助将不胜感激!
目前我收到错误消息:“SyntaxError: missing : after property id @ line 6”[at 'alert("Called!!"),'],但如果我将其注释掉,则什么也不会发生。
HTML:
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
<script src='../js/validate.js'></script>
<!DOCTYPE html>
<html>
...
<body>
...
<form method="POST" action="upload.php?t=0" class="formbox" style="float:left;" name='aform'>
<label>Category: </label><input type="text" id='validate' maxlength="30" name="category"/><br />
<input style="margin-left:35%;width:130px;" type="submit" value="Submit Article" />
</form>
...
</body>
</html>
验证.js:
$(document).ready(function(){
$('#validate').blur(function(){
$.ajax({
type: "POST",
url: "../php/validate.php",
data: aform.elements["category"].value,
success: function(msg){
alert("Category exists!");
},
error: function(){
alert("Error!");
}
});
});
});
验证.php:
<?php
include '../php/db.php';
echo "Called!";
$cat = mysqli_real_escape_string($con, $_POST['category']);
$query = mysqli_query($con, "SELECT DISTINCT * FROM Category WHERE Name='".$cat."';");
if(mysqli_num_rows($query) == 1){
echo "Category Exists!";
}else if(mysqli_num_rows($query) == 0){
echo "No Category with that name found!";
}else{
echo "Too many Categories found!";
}
?>
提前致谢!
编辑:为了将来参考,我在引用 POST 数据时遇到了麻烦,我最终将“data:aform.elements["category"].value" 更改为 'data:"cat="+document.querySelector('[name = "category"]').value,' 在 js 文件中并在 php 文件中引用 "$_POST['cat']"