每次我在另一页上访问$ _POST时,都没有值。如果表单使用innerHTML,我们如何提交发布请求?
function edit(firstname){
var firstname_old = document.getElementById("firstname-div")
//Set id="FirstName" to your input field
firstname_old.innerHTML= 'First Name:<input type="text" id="FirstName" name="firstname" value="'+ firstname +'">';
}
<form class="" action="summary.php" method="post">
<div id="firstname-div">
<?php echo "First Name: $firstname<br>"; ?>
</div>
<button type="button" onclick="edit('<?php echo $firstname ?>')">edit</button><br>
<input type="submit" name="submit" value="submit">
</form>
答案 0 :(得分:1)
当您不处于“编辑模式”时,您只会输入文本。
<?php echo "First Name: $firstname<br>"; ?>
此文本位于要提交的表单中,但不是表单字段!要实现所需的功能(通过ajax传递“名字”的内容),您需要一个“隐藏字段”。 因此,您可以将文本中显示的相同值放入这样的隐藏输入中。
<form class="" action="summary.php" method="post">
<div id="firstname-div">
<?php echo "First Name: $firstname<br>"; ?>
</div>
<button type="button" onclick="edit('<?php echo $firstname ?>')">edit</button><br>
<input type="hidden" name="firstname" value="'<?php echo $firstname ?>'">
<input type="submit" name="submit" value="submit">
</form>
答案 1 :(得分:1)
据我了解,您想在单击编辑按钮时显示一个文本框来编辑名称。这是一种解决方案:-
<script>
$(document).ready(function(){
$("#edit").click(function(){
document.getElementById("firstname-div").style.display = "none" ;
document.getElementById("firstname-div-edit").style.display = "block" ;
});
});
</script>
<HTML>
<form class="" action="summary.php" method="post">
<div id="firstname-div">
<?php echo "First Name: $firstname<br>"; ?>
</div>
<div id="firstname-div-edit" style="display:none;">
<input type="text" name="firstname" value="'<?php echo $firstname ?>'">
</div>
<button type="button" id="edit">edit</button><br>
<input type="submit" name="submit" value="submit">
</form>
</HTML>
检查并让我知道它是否对您有用。