我閱讀了關於類似問題的建議,我跟着它。我從JavaScript發佈一個值到要傳遞給PHP的表單。如果我將該值傳遞給textarea字段,但不是隱藏字段,則此功能完全正常。Javascript張貼到表單 - 如果字段被隱藏將無法工作
HTML
<!DOCTYPE html>
<html>
<head>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js" ></script>
<script src="updatepage.js"></script>
<head>
<body onload="loadbio()">
<form action="http://localhost/restricted/update.php" method="POST">
<input type="hidden" id="hiddenbio" name="oldbio"> <!-- Hidden to pass to PHP -->
Biography: <br /><textarea id="bio" rows="8" cols="60" name="newbio"></textarea>
<br /><br />
<input type="submit" value="Submit">
</form>
</body>
</html>
JS
function loadbio() {
$("#bio").load('randomperson.html #biobox p')
setTimeout (function() {
var biotopass = $("#bio").val();
$.post("biochange.html", { oldbio: biotopass });
}, 200);
}
PHP
<html>
<body>
Old Bio: <?php echo $_POST["oldbio"]; ?><br />
New Bio: <?php echo $_POST["newbio"]; ?><br />
</body>
</html>
所以loadbio()熄滅並拉起舊傳了一個文件並將其發佈到biochange的。 HTML。 HTML在文本區域中顯示舊的傳記,其中人員改變它。
這是問題出在哪裏,我需要在更改之前存儲舊值的值。如果我將隱藏的輸入更改爲textarea,它將在PHP中得到回顯。如果我將它隱藏起來,它不會得到迴應。
這聽起來像你對我說的:「我想儲存一些信息,而不是顯示它」。那麼爲什麼不把它存儲在JS?另外還有一個錯誤,如果你的服務器需要超過200ms才能返回「加載」請求,那麼「#bio」仍然是空的,爲什麼不在「加載」函數回調中設置超時以確保不會發生這種錯誤。 – 2015-02-11 15:53:40