簡體   English   中英

使用 JSON 從 PHP 數據庫獲取數據的問題

[英]Issues with using JSON to fetch data from a PHP database

我正在將此產品保修數據庫系統作為一個小型學習項目作為新的 web 開發。 我對我最想擁有的最后一個更大的工具之一有很多問題。 這是每一行中的一個按鈕,當單擊該按鈕時,將彈出一個模式彈出窗口,並有一個將原始評論設置為值的文本框。 當用戶完成添加或更改評論時,單擊另一個按鈕,它將更新(我對這部分很有信心)。

這個問題在於檢索實際評論。 我正在使用在網上找到的類似項目作為指導工具。 他們使用 JSON 調用 php function 來檢索數據並將文本框的值設置為數據。 我嘗試了這種方法,但似乎沒有任何效果。 我嘗試更改代碼,在 JSON 上閱讀更多內容,嘗試了其他項目,但沒有成功。 我還嘗試使用 onclick 方法並通過實際按鈕側的參數,但這也不起作用。 當我的意思是它不起作用時,我的意思是控制台日志中有 0 個錯誤,所以我不確定在哪里尋找更正。

在刪除數據類型:'JSON' 時,我確實讓 function 工作,但該框從未設置為該值。

這里有一些代碼塊供參考。 是的,它很混亂,是的,我知道它容易受到連接攻擊。

在表格 php 文件中,用於為每個產品創建按鈕。

if ($row['WarrStatus'] == 'ACTIVE') {
    echo '<td><button type="button" class="deleteRow" id="'.$id.'" >Delete</button></td>
          <td><button type="button" class="updateRow" id="'.$id.'" >Update</button></td>
          <td><button type="button" class="resolveRow" id="'.$id.'" >Resolve</button></td>';
}

這是點擊按鈕updateRow時的js function,這將執行

$(".updateRow").click(function() {
    var item_id = $(this).attr("id");  

    $.ajax({  
            url:"Actions/fetch.php",  
            method:"POST",  
            data:{item_id:item_id},  
            dataType:"json",  

            success: function(data) {   
                document.getElementById("CommentBox") = data.comments //Comments = the data retrieved
                 modal.style.display = "block"; //Display the modal 
            }  
       });  
  });

這是獲取json數據的fetch.php。

if(isset($_POST["item_id"])) {  
      $query = "SELECT comment FROM inspection.product WHERE TransactionID = '".$_POST["item_id"]."'";  
      $result = mysqli_query($conn, $query);  
      $row = mysqli_fetch_array($result);  
      echo json_encode($row); 
 }  
 ?>

最后,這是模態的。

<div id="myModal" class="modal" 
    <div class="modal-content" 
    <span class="close">&times;</span>
    <h2>Update a Comment</h2>
    <p id="CustDetails">You are now editing ...</p>
    <form method="POST">
        <input type ="text" class="CommentBox" id="CommentBox" value=""></input>
        <button class="updateCommentbtn" id="updateCommentbtn" value="">Update</button>
    </form>
    </div>
</div>

這是顯示的內容

用戶表

總而言之,我的問題似乎是當單擊更新按鈕時,沒有通過 JSON 或任何其他方法檢索到數據,我不確定這是為什么。 任何幫助,將不勝感激!

您的問題來自 Javascript 成功 function 上的這一行

document.getElementById("CommentBox") = data.comments

將其更改為:

document.getElementById("CommentBox").value  = data.comments

這里至少有幾個問題。

  1. PHP 不會將 JSON 隱式解析為 POST 超級全局。 這僅適用於表單數據(您可以更改您的 AJAX 請求以傳遞表單數據或更新您的 PHP 以解析 JSON)。 這意味着您的isset($_POST["item_id"])檢查將始終返回 false。
  2. 在 AJAX 請求的成功處理程序中,您將字符串值分配給 DOM 元素。 這可能不是您想要的。 您可能想要設置元素的innerHtml 由於您正在(可能)處理文本並且已經在使用 jQuery,所以只需執行$("#CommentBox").text(data.comments);

暫無
暫無

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

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