如何自动获取多种表格

时间:2019-05-18 14:39:39

标签: php html

我正在做一个HTML表单,这意味着创建一个传递游戏的步骤,并且我希望能够输入一个数字,例如,当我输入5时,它立即向我显示5个表单来填写并创建新步骤但是当我尝试时没有出现该怎么办?

<h3>Insertion des étape :</h3>

<form action="InsertionEtape.php" method="post">
    <input type="number" name="quantity" min="1" max="5">
    <br>
    <?php for ($i=0; $i < $_GET['quantity']; $i++) {
       ?>
        <h5>Nom de l'étape</h5>
        <input type="text" name="NomEtape" size="40" maxlength="40">
        <br>

        <h5> Description de l'étape </h5>
        <textarea name="DescriptionEtape" rows="8" cols="80"></textarea>
        <br>
        <br>
        <input type="submit" value="Valider">
        <?php
     } ?>
</form>

3 个答案:

答案 0 :(得分:0)

对,所以听起来您希望此表单在页面上更新。为此,您需要使用JavaScript。 PHP仅在服务器端运行,您希望它在客户端更新。

这是一个使您走上正确道路的快速示例。我使用的是流行的Javascript库jQuery。

var $group = $('form .group').clone();
$('[name="quantity"]').on('change input keyup cut paste', function() {
  var quantity = parseInt($(this).val());
  $('form .group').remove();
  for (var i = 0; i < quantity; i++) {
    $group.clone().insertBefore('form [type="submit"]');
  }
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<h3>Insertion des étape :</h3>

<form action="InsertionEtape.php" method="post">
  <input type="number" name="quantity" value="1" min="1" max="5">
  <br>
  <div class="group">
    <h5>Nom de l'étape</h5>
    <input type="text" name="NomEtape[]" size="40" maxlength="40">
    <br>

    <h5> Description de l'étape </h5>
    <textarea name="DescriptionEtape[]" rows="8" cols="80"></textarea>
    <br>
  </div>
  <input type="submit" value="Valider">
</form>

答案 1 :(得分:0)

<h3>Insertion des étape :</h3>
<form action="index.php" method="post">
    <input type="number" name="quantity" id="quantity" min="1" max="5"> 
    <div id="formcontainer">
    </div>
    <input type="submit" value="Valider">
</form>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script>
    jQuery(function($) {
        $("#quantity").bind('keyup mouseup', function () {
            var count = $('#quantity').val();
            var htmlf = '';
            for (i = 0; i < count; i++) {
                htmlf += "<h5>Nom de l'étape</h5><br/>";
                htmlf += '<input type="text" name="NomEtape_"'+i+' size="40" maxlength="40">';
                htmlf += "<h5>Description de l'étape</h5><br/>";
                htmlf += '<textarea name="DescriptionEtape_"'+i+' rows="8" cols="80"></textarea>';
                htmlf += "<br/>"
            }
            $("#formcontainer").html(htmlf);
        });
    });
</script>

简单只需运行代码,您就会发现自己很简单。

答案 2 :(得分:-1)

好吧,我改成了这个,但是出现了一个错误,

    //return position % 2 * 2;
    return 0;
}
  

注意:未定义的索引:第106行/***/**********/*****/******/WWW/Page_Administrateur/FormulaireInsertion.php中的数量< / p>