Ок, возможно, я пропустил здесь что-то очень простое, но я не могу понять это. Я пытаюсь сделать мою форму динамически расширяемой.
Моя проблема в том, что я не могу заставить этот код работать:
<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 текстовых поля больше в таблице с конкретными идентификаторами. Я также пробовал его с помощью div
-Tags, но это тоже не сработало.
Я надеюсь, что кто-то может мне помочь.
Вы не можете использовать php clientside, он анализируется на сервере только тогда, когда посетитель запрашивает страницу с помощью GET или POST, поэтому использование $ я = $ я + 1 не будет работать с клиентами. Кстати, вместо этого используйте $i++.
Вы можете решить это только с помощью javascript или, в качестве альтернативы, отправить форму и снова представить форму с дополнительными полями, чтобы вы могли сделать это с помощью php.
Я рекомендую вам взглянуть на jQuery и проверить этот ответ с помощью демонстрации: как использовать jQuery для динамического добавления элементов формы (кредиты для PSL)