【发布时间】:2015-09-05 05:09:47
【问题描述】:
我正在尝试在提交表单之前检查一个字段是否刚刚出现在数据库中。
所以我将 keyup 事件添加到该字段以从 db 和 ajax 获取数据。
所以我在表单中添加了这段代码:
$(document).ready(function (){
$("#matricola").keyup(function () {
$.ajax({
type:"get",
url: "getMatricolaAjax.php",
data: {'type':'user', 'matricola':$("#matricola").val()},
dataType: "text",
success: function(result){
console.log("OK");
$("#matricola").val("");
alert("Matricola "+ result +" già presente!!");
},
error: function(){
console.log("KO");
}
});
});
});
这是我的getMatricolaAjax.php:
<script src='js/jquery-2.1.4.js' type="text/javascript"></script>
<?php
require_once 'config.php';
require_once FUNCTION_PATH.'/dbFunction.php';
if($_GET['type'] == "user"){
$queryMatricolaMatch = 'select * from user where matricola = "'.$_GET['matricola'].'"';
}else{
$queryMatricolaMatch = 'select * from 150ore where matricola = "'.$_GET['matricola'].'"';
}
echo $queryMatricolaMatch;
$conn = dbConnect($USERDB, $PASSWORDDB, $NAMEDB);
$matricola = dbQueryGetResult($queryMatricolaMatch);
dbDisconnect($conn);
echo $matricola;
它适用于一半,因为在result 我从getMatricolaAjax.php 获得所有html 代码..
为什么??
我怎样才能只得到matricola??
【问题讨论】:
-
我不确定您的 dbQueryGetResult() 函数是如何设置的,但通常查询 mysql 数据库会返回一个数组(您可能认为是“所有 html 代码”)所以如果您想获得特定的结果,匹配时需要指向该数组键
-
如您所见,
result变量包含您使用 ajax 调用的 php 脚本的输出。如果您需要其他输出,您应该修改您的脚本或制作另一个仅返回您需要的脚本。 -
getMatricolaAjax.php 中不应包含任何输出,例如脚本标签、样式标签。您只需要通过 php 回显。
-
getMatricolaAjax.php 中不需要任何 HTML 标签或 JavaScript 。所以删除它们,然后让我们知道你得到的输出
-
@RNKushwaha 好的!我删除了所有导入和回显。但现在我加载资源失败:服务器响应状态为 500(内部服务器错误),因此 ajax 的响应进入错误而不是成功...为什么?
标签: php jquery html mysql ajax