如何使用ajax和php从数据库检索数据?
我试图在提交表单之前检查db中是否存在字段 因此,我将keyup事件添加到该字段,以使用如何使用ajax和php从数据库检索数据?,php,jquery,html,mysql,ajax,Php,Jquery,Html,Mysql,Ajax,我试图在提交表单之前检查db中是否存在字段 因此,我将keyup事件添加到该字段,以使用ajax从db获取数据 因此,我在表格中添加了以下代码: $(document).ready(function (){ $("#matricola").keyup(function () { $.ajax({ type:"get", url: "getMatricolaAjax.php", data: {'
ajax
从db
获取数据
因此,我在表格中添加了以下代码:
$(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;
注释或删除数据类型:“text”
,然后重试
$.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!!");
},
或者,您可以在PHP中使用json_encode()以json对象数组的形式获取数据 在提交表单之前,应该使用POST检查数据库中的值
$(document).ready(function (){
$("#matricola").keyup(function (e) {
var thevalue = $(this).val();
$.post('getMatricolaAjax.php',{'type':'user','matricola':thevalue},
function(data) {
console.log("OK");
$("#matricola").val("");
alert("Matricola "+ data +" già presente!!");
});
});
});
和php文件
<?php
require_once 'config.php';
require_once FUNCTION_PATH.'/dbFunction.php';
$conn = dbConnect($USERDB, $PASSWORDDB, $NAMEDB);
if($conn->real_escape_string($_POST['type']) == "user"){
$queryMatricolaMatch = 'select * from user where matricola = "'.$conn->real_escape_string($_POST['matricola']).'"';
}else{
$queryMatricolaMatch = 'select * from 150ore where matricola = "'.$conn->real_escape_string($_POST['matricola']).'"';
}
$matricola = dbQueryGetResult($queryMatricolaMatch);
dbDisconnect($conn);
echo $matricola;
我不确定dbQueryGetResult()函数是如何设置的,但通常查询mysql数据库会返回一个数组(您可能认为是“所有html代码”),所以如果您想要得到特定的结果,您需要在匹配时指向该数组键,正如您所注意到的,result
变量包含使用ajax调用的php脚本的输出。如果需要其他输出,则应修改脚本或制作另一个仅返回所需内容的脚本。getMatricolaAjax.php中不应包含任何输出,如脚本标记、样式标记。您只需要通过php进行回显,在getMatricolaAjax.php中不需要任何HTML标记或JavaScript。所以移除它们,然后让我们知道您的输出get@RNKushwaha好啊我删除所有导入和回显。。但现在我无法加载资源:服务器响应状态为500(内部服务器错误),因此ajax的响应进入错误状态,而不是成功。。。为什么?