![](/img/trans.png)
[英]Using PHP script to call json data and from database Grails do slow data fetch
[英]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">×</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
這里至少有幾個問題。
isset($_POST["item_id"])
檢查將始終返回 false。innerHtml
。 由於您正在(可能)處理文本並且已經在使用 jQuery,所以只需執行$("#CommentBox").text(data.comments);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.