如何使用ajax和php从数据库检索数据?

如何使用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: {'

我试图在提交表单之前检查db中是否存在字段

因此,我将keyup事件添加到该字段,以使用
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的响应进入错误状态,而不是成功。。。为什么?