簡體   English   中英

如何在 web 頁面中存儲 MySQL 值以供以后使用

[英]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.

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