我阅读了关于类似问题的建议,我跟着它。我从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