【问题标题】:Interaction between jquery,MySQL and PHP to retrieve the resultjquery,MySQL和PHP之间的交互以检索结果
【发布时间】:2016-09-14 02:57:20
【问题描述】:

我有两个文件,test.htmltest.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 部分)?

【问题讨论】:

  • 错过了 $ 和 ajax $ajax({... 之间的一个点。应该是$.ajax({...
  • 以后,您应该使用适用于您的浏览器的开发者工具(例如 firebug)来调试这些类型的问题。
  • @Mr.Engineer 我不相信任何地方都有额外的}。 @Kosmos 是正确的,因为它必须是 $.ajax 而不是 $ajax
  • @TylerRoper 你们俩都是对的。
  • 另外,如果您只是在学习,那么您可能想知道mysql_* 函数已被弃用(甚至可能删除)在 PHP 中。您应该学习使用 mysqli_*(或 PDO)函数。

标签: php jquery html mysql ajax


【解决方案1】:

做一个这样的函数

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();
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-07-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-09
    • 2019-05-25
    相关资源
    最近更新 更多