jquery,MySQL和PHP之间的交互以检索结果

时间:2016-09-13 18:06:24

标签: php jquery html mysql ajax

我有两个文件test.html& test.php。我想通过jQuery AJAX显示SQL查询的结果。

test.php输出正确的JSON,但是我点击按钮后无法获取相同的内容"获取数据"。这是使用AJAX的错误方法吗?

test.html中获取数据后,如何访问内容?

test.html

<html>
    <head>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
    <script>
    $(document).ready(function(){
        $("button").click(function(){
            $ajax({
                url:'test.php',
                type:'get',
                dataType:'json',
                success:function(data){
                alert(data);
                console.log(data['success']);
                console.log(data.success);           
                }
    });
        });
    });
    </script>
    </head>
    <body>

    <button>Fetch Data</button>

    </body>
    </html>

test.php的

<?php
    $dbuser="root";
    $dbname="test";
    $dbpass="root";
    $dbserver="localhost";
    // Make a MySQL Connection
    $con = mysql_connect($dbserver, $dbuser, $dbpass) or die(mysql_error());
    mysql_select_db($dbname) or die(mysql_error());
    // Create a Query
    $sql_query = "SELECT ID, UserName, Status FROM user_details1";
    // Execute query
    $result = mysql_query($sql_query) or die(mysql_error());
    $jsonArray = array();
    while ($row = mysql_fetch_array($result)){
        $jsonArrayItem = array();
        $jsonArrayItem["ID"] = $row["ID"];
        $jsonArrayItem["UserName"] = $row["UserName"];
        $jsonArrayItem["Status"] = $row["Status"];
        array_push($jsonArray, $jsonArrayItem);
    //echo '<option value='. $row['id'] . '>'. $row['login'] . '</option>';
    }
    mysql_close($con);
    $tableData = array(
            "data" => $jsonArray
        );
    header('Content-Type: application/json');
    echo json_encode($tableData,JSON_UNESCAPED_SLASHES);
    die();
  ?>

如何显示/访问/打印提取的结果内容(AJAX部分)?

1 个答案:

答案 0 :(得分:0)

制作这样的功能

var dataToSend = "My Data";

$(button).on("click",function(event){
    $.ajax({
      method: "POST",
      url: "test.php",
      data: { pDataToSend: dataToSend }
    }).done(function( data ) {
      $('.results').empty();
      $('.results').append(data);
    });
});

并制作这样的div

<div class="results></div>

在PHP文件中,您可以使用此代码阅读POST。

$foo = $_POST['pDataToSend'];

此外,您的test.php文件到处都是。使用像这样的PDO

//connect and setup database example
try {
  $db = new PDO("mysql:host=localhost;dbname=second;port=8889","root","root");
  $db->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);
  $db->exec("SET NAMES 'utf8'");
} catch (Exception $e){
  echo 'Could not connect to the database.105';
  exit();
}

//select,insert,delete, update from database example
try{
  $results = $db->prepare("SELECT * FROM articles WHERE article_id = ? AND user_id = ?");
  $results->bindParam(1,$var);
  $results->bindParam(2,$var2);
  $results->execute();
  $hold = $results->fetchAll(PDO::FETCH_ASSOC);
} catch (Exception $e) {
  echo "Data could not be retrieved from the database.";
  exit();
}