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

时间:2015-06-19 09:18:10

标签: php jquery html mysql ajax

我正在尝试检查字段是否仅在提交表单之前存在于db中。

因此,我将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的{​​{1}}中的所有html来自getMatricolaAjax.php的代码。

为什么?

我怎样才能获得matricola ??

2 个答案:

答案 0 :(得分:0)

评论或删除dataType: "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对象数组。

答案 1 :(得分:0)

在提交表单之前,您应该使用POST检查数据库中的值。

public function actionView($id) { 
\Yii::$app->view->params['layoutvars'] = ['id' => $id];
return $this->render('view', ['model' => $model]);
}

和php文件

$id = \Yii::$app->view->params['layoutvars']['id'];

这应该可行,但我不知道dbQueryGetResult应该做什么,所以你也应该发布它。 注意:如果您使用PDO编辑删除&#39; real_escape_string&#39;功能和使用其他消毒方法