如果form是innerHTML的值,如何提交POST请求?

时间:2018-06-22 05:50:48

标签: javascript php html dom

每次我在另一页上访问$ _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>

2 个答案:

答案 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>

检查并让我知道它是否对您有用。