簡體   English   中英

如何將 PHP 數據從數據庫發送回 JQuery 並插入到表中

[英]How to send PHP data from database back to JQuery and insert to a Table

正如標題所說,我正在嘗試根據用戶輸入顯示數據庫中的數據,並將其顯示在 HTML 表上。 總之我想讓用戶輸入過濾查詢請求到數據庫,然后以表格的形式顯示結果。

我的問題是我不確定如何將查詢結果返回到 JQuery,然后將該數據轉換為表格以便在 HTML 中顯示。

到目前為止,這是我的方法,但它不起作用。 我已經成功地用常規 Javascript 做到了這一點。但我想嘗試使用 JQuery 來解決這個特定問題,因為它進一步簡化了代碼。

JQuery:

 var ourObj = {};

  ourObj.data = "Ranges";
  ourObj.arPoints = [{"SID":TABLID},{"T1": T1,"T2": T2},{"H1": H1,"H2": H2},{"P1": P1,"P2": P2},{"C1": C1,"C2": C2},
                     {"Y1": Y1,"Y2": Y2},{"M1": M1,"M2": M2},{"D1": D1,"D2": D2},{"m1": m1,"m2": m2}];

  $.ajax({
    type:"post",
    url:"GetQuery.php",
    data:{"data" : JSON.stringify(ourObj)},
    success: function(response){  

      $('SensorData').html(response);

    }
  });

PHP

<?php
if (isset($_POST["data"])) {

    // Decode our JSON into PHP objects we can use
    $data = json_decode($_POST["data"]);

    $id = $data->arPoints[0]->SID;

    $T1 = $data->arPoints[1]->T1;
    $T2 = $data->arPoints[1]->T2;
    $H1 = $data->arPoints[2]->H1;
    $H2 = $data->arPoints[2]->H2;
    $P1 = $data->arPoints[3]->P1;
    $P2 = $data->arPoints[3]->P2;
    $C1 = $data->arPoints[4]->C1;
    $C2 = $data->arPoints[4]->C2;

    $Y1 = $data->arPoints[5]->Y1;
    $Y2 = $data->arPoints[5]->Y2;
    $M1 = $data->arPoints[6]->M1;
    $M2 = $data->arPoints[6]->M2;
    $D1 = $data->arPoints[7]->D1;
    $D2 = $data->arPoints[7]->D2;
    $m1 = $data->arPoints[8]->m1;
    $m2 = $data->arPoints[8]->m2;

    // echo "Sensore ID: " . $id;
    // echo "Temperature: " . $T1 . " : " . $T2;
    // echo "Humidity: " . $H1 . " : " . $H2;
    // echo "Pressure: " . $P1 . " : " . $P2;
    // echo "CO: " . $C1 . " : " . $C2;

    $conn = mysqli_connect('localhost', 'root', '', 'sensors');

    if(empty($Y1) || empty($Y2) || empty($M1) || empty($M2) || empty($D1) || empty($D2) || empty($m1) || empty($m2)){

        $query = "SELECT * FROM sensors, sensorsdata WHERE sensors.SensorID = sensorsdata.SensorID 
        AND sensorsdata.SensorID = '$id' 
        AND sensorsdata.Temperature BETWEEN $T1 AND $T2
        AND sensorsdata.Humidity BETWEEN $H1 AND $H2
        AND sensorsdata.Air_Pressure BETWEEN $P1 AND $P2
        AND sensorsdata.Carbon_Monoxide BETWEEN $C1 AND $C2
        order by sensorsdata.Date Desc"; 
    }
    else{
        $time1= mktime(12,$m1,0,$M1,$D1,$Y1);
        $time1= date("Y-m-d h:i:s", $time1);

        $time2= mktime(12,$m2,0,$M2,$D2,$Y2);
        $time2= date("Y-m-d h:i:s", $time2);

        $query = "SELECT * FROM sensors, sensorsdata WHERE sensors.SensorID = sensorsdata.SensorID 
        AND sensorsdata.SensorID = '$id' 
        AND sensorsdata.Temperature BETWEEN $T1 AND $T2
        AND sensorsdata.Humidity BETWEEN $H1 AND $H2
        AND sensorsdata.Air_Pressure BETWEEN $P1 AND $P2
        AND sensorsdata.Carbon_Monoxide BETWEEN $C1 AND $C2
        AND sensorsdata.Date BETWEEN '$time1' AND '$time2'
        order by sensorsdata.Date Desc"; 
    }

    // Get Result
    $result = mysqli_query($conn, $query);

    // Fetch Data
    while ($row = mysql_fetch_array($result))
    {
       ?>
          <tr><td><?php echo $row['Temperature']?></td>
          <td><?php echo $row['Humidity']?></td>
          <td><?php echo $row['Air_Pressure']?></td>
          <td><?php echo $row['Carbon_Monoxide']?></td>
          <td><?php echo $row['Date']?></td></tr>;
        <?php   
    }

    mysqli_close($conn);
}
?>

HTML表

  <table class="table">
                <thead>
                    <tr>
                        <th>Temperature</th>
                        <th>Humidity</th>
                        <th>Air Pressure</th>
                        <th>Carbon Monoxide</th>
                        <th>Date</th>
                    </tr>
                </thead>
                <tbody id="SensorData">

                </tbody>
            </table>

哇,好的,設法解決了問題,這總是小事。

問題 #1:(感謝 Luke T.)將$('SensorData')更改為$('#SensorData')的簡單問題

問題 #2:問題在於我如何遍歷 PHP 文件中的每一行數據,將其從

while ($row = mysql_fetch_array($result))
    {
        ?>
        <tr><td><?php echo $row['Temperature']?></td>
        <td><?php echo $row['Humidity']?></td>
        <td><?php echo $row['Air_Pressure']?></td>
        <td><?php echo $row['Carbon_Monoxide']?></td>
        <td><?php echo $row['Date']?></td></tr>;
      <?php   
    } 

foreach ($result as $row)
    {
        ?>
        <tr><td><?php echo $row['Temperature']?></td>
        <td><?php echo $row['Humidity']?></td>
        <td><?php echo $row['Air_Pressure']?></td>
        <td><?php echo $row['Carbon_Monoxide']?></td>
        <td><?php echo $row['Date']?></td></tr>;
      <?php   
    } 

rest 幾乎保持不變,它現在在表中顯示沒有問題的請求數據。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM