0

好吧,也许我在这里忽略了一些非常简单的事情,但我似乎无法弄清楚这一点。我正在尝试使我的表单动态扩展。

我的问题是我无法让这段代码工作:

<html>
<head>
    <?php
    $i = 1;
    $p = 1;
    $r = 1;
    ?>
    <script language="javascript">
        function add()
        {

            document.getElementById("groesse").innerHTML = document.getElementById("grosse").innerHTML+"<input type='text' name='groesse[<?php echo $i;?>]'>";
            document.getElementById("preis_l").innerHTML = document.getElementById("preis_l").innerHTML+"<input type='text' name='preis_a[<?php echo $p;?>]'>";
            document.getElementById("preis_a").innerHTML = document.getElementById("preis_a").innerHTML+"<input type='text' name='preis_l [<?php echo $r;?>]'><br>";

            <?php
            $i = $i + 1;
            $p = $p + 1;
            $r = $r + 1;
            ?>
        }
    </script>
</head>
<body>

<?php

    if ($_REQUEST['Selected'] == 'Speisekarte')
    {
        echo '<br><br><br><br>';
        echo '<input type="button" value="+" onClick="add()">';
        echo '<form action="insert.php" method="submit">';
        echo '<table border="1">';
        echo '<tr><td>ID</td><td>Name</td><td>Beschreibung</td><td>Größe</td><td>Preis_L</td><td>Preis_A</td></tr>';
        echo '<tr><td><input type="text" id="ID" name="ID"></td>';
        echo '<td><input type="text" id="Name" name="Name"></td>';
        echo '<td><input type="text" id="Beschreibung" name="Beschreibung"></td>';
        echo '<td id="groesse"></td>';
        echo '<td id="preis_l"></td>';
        echo '<td id="preis_a"></td>';
        echo '</tr></table><input type="hidden" value="Speisekarte">';
        echo '<button type="submit">OK</button></form>';

    }

?>
</body>
</html>

我希望当有人单击+-Button 时,我的表单会在表格中获得 3 个具有特定 ID 的文本字段。我也用div-Tags 尝试过,但也没有用。

我希望有一个人可以帮助我。

4

1 回答 1

0

您不能使用 php 客户端,只有当访问者通过 GET 或 POST 请求页面时才会在服务器上解析它,因此使用 $i = $i + 1 将无法在客户端工作。顺便说一句,请改用 $i++ 。

您可以仅使用 javascript 来解决此问题,或者,作为替代方案,提交表单并使用所需的额外字段再次呈现表单,以便您可以使用 php.ini 来解决此问题。

我建议您看一下 jQuery 并通过演示查看此答案: 如何使用 jQuery 动态添加表单元素 (感谢 PSL)

于 2013-11-09T21:17:21.103 回答