好吧也许我在这里忽略了一些非常简单的事情,但我似乎无法弄清楚这一点。我试图让我的形式动态扩展。
我的问题是我无法使此代码正常工作:
<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>
我希望当有人点击+
时 - 按钮我的表格会在表格中获得3个具有特定ID的文本字段。我也尝试使用div
- 标签,但这也没有用。
我希望有人可以帮助我。
答案 0 :(得分:0)
你不能使用php clientside,只有当访问者通过GET或POST请求页面时才在服务器上解析它,所以使用$ i = $ i + 1将不能在客户端工作。顺便说一下,改用$ i ++。
你可以只使用javascript来解决这个问题,或者作为替代方案,提交表单并再次使用所需的额外字段显示表单,这样你就可以用php完成。
我建议您查看jQuery并使用demo查看此答案: How to use jQuery to add form elements dynamically (学分给PSL)