[英]How to store a MySQL value in a web page for later use
我從帶有 php 的 MySQL 表中僅獲取一個單元格值,並將其存儲在帶有 id 的 div 中。 然后我稍后在 JavaScript 代碼中嘗試使用該 div。
我認為 php/MySQL 代碼都是正確的,但是在后面的 JavaScript 代碼中使用 div 值存在問題。
在 web 頁面中存儲 MySQL 值以供以后使用的最佳方法是什么?
目前我將返回的結果存儲為:
<div id="IsShift04Special"></div>
使用:
xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function() {
if (this.readyState == 4 && this.status == 200) {
document.getElementById("IsShift04Special").innerHTML=xhttp.responseText;
}
};
這一切似乎都運作良好。
如果我在瀏覽器中雙擊頁面上的 1 並將其粘貼到記事本中,它只會粘貼 1。它附近沒有可見的回車或空格。
但是當我稍后嘗試使用 1 值時:
var IsItASpecial = document.getElementById("IsShift04Special").innerHTML;
然后在 if 語句中使用它,它不起作用。
當我檢查 IsItASpecial 的值(聲明它的位置和 if 語句)時,在 Chrome 調試器中它返回為:
IsItASpecial = "↵↵↵↵↵ 1 ↵↵↵"
該表當前只有一行。
值為 tinyint(1),值為 1。
這是 php 查詢:
$result=mysqli_query($conn, "SELECT shift04_special FROM `shifts` WHERE `users_username`= '$users_username' AND `companies_short_name` = '$companies_short_name' AND `job_role_short_name` = '$job_role_short_name'");
$special_shift04 = mysqli_fetch_assoc($result);
echo $special_shift04['shift04_special'];
我遇到了同樣的問題:
while ($row = mysqli_fetch_array($result)) {
echo 'shift04_special';
}
和:
while ($row = mysqli_fetch_assoc($result)) {
echo $row["shift04_special"];
}
當我將 var 轉儲為:
var_dump($special_shift04);
這部分被退回:
["shift04_special"]=> string(1) "1" }
所以看來問題出在我返回 div 值然后將其存儲在 var 中的代碼上。
您可以將其直接保存在 JavaScript 變量中。
var id=<?php echo $row['shift04_special'] ?>
這是一個典型的類型轉換問題。 MySQL 與 PHP 分開存儲數據。 所以輸入 MySQL.= 輸入 PHP。 因此,您在 PHP var_dump() 函數中執行了 string(1) "1" 。
因此,在您的情況下,當您在 Javascript 環境中獲得一個值時,您應該將此值轉換為您需要的類型。 在你這樣的情況下:
var IsItASpecial = parseInt(document.getElementById("IsShift04Special").innerHTML);
但。 我不建議在生產中使用這樣的 JS。 但是學習沒問題!
玩得開心
您可以嘗試以 JSON 格式存儲在本地存儲中,
// Fetch from server localStorage.setItem("mysqlResponse", JSON.stringify(response));
現在,每當您需要價值時,
const data = JSON.parse(localStorage.getItem("mysqlResponse"));
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.