2009-08-14 5 views
5

Я не очень веб-программист, но я создаю простое веб-приложение, которое имеет форму, в которой пользователь может ввести ряд точек (x, y, z), но я не знаю, сколько пользователь войдет. Я не хочу догадываться о возможном максимуме (возможно, 100?) И ставить 100 полей в форме, потому что это выглядело бы уродливо. Самый простой способ добавить дополнительные поля (или показать поля), когда пользователь вводит данные без обращения к серверу.Как я могу динамически добавлять поля ввода в форму?

В настоящее время я просто использую html & php, но я предполагаю, что для этого мне нужен javascript?

В настоящее время мой код выглядит так, поскольку пользователь вводит данные, я хочу, чтобы появилась другая строка.

<form action="edit.php" method="post"> 
    <table border=1> 
    <tr> 
     <td> 
     <td>X 
     <td>Y 
     <td>Z 
    </tr> 
    <tr> 
     <td>1</td> 
     <td><input type=text name=x1 size=10 value="0.4318"></td> 
     <td><input type=text name=y1 size=10 value="0.0000"></td> 
     <td><input type=text name=z1 size=10 value="0.1842"></td> 
    </tr> 
    <tr> 
     <td>2</td> 
     <td><input type=text name=x2 size=10 value="0.4318"></td> 
     <td><input type=text name=y2 size=10 value="0.0000"></td> 
     <td><input type=text name=z2 size=10 value="-0.1842"></td> 
    </tr> 
    <tr> 
     <td>3</td> 
     <td><input type=text name=x3 size=10 value="-0.3556"></td> 
     <td><input type=text name=y3 size=10 value="0.0000"></td> 
     <td><input type=text name=z3 size=10 value="0.1636"></td> 
    </tr> 
    ... I want more to appear here... 
    </table> 
    <button name="submit" value="submit" type="submit">Save</button> 
</form> 

Любая идея - самый простой способ? Спасибо ...

ответ

7

Я хотел бы использовать JQuery и append новые входы.

+0

Он отлично работает, спасибо. –

0

Что вы говорите, так это то, что вы вручную записываете теги ввода? Или вы говорите, что хотите динамическое действие, когда пользователь нажимает кнопку и добавляет больше строк таблицы?

В любом случае для вашего кода вам просто нужен цикл, например. Я предполагаю, что $ данные любые данные, которые вы хотите установить на основе массива, который, вероятно, из базы данных или что-то:

<?php 
for($i=0, $iMaxSize=count($data); $i<$iMaxSize; $i++) 
{ 
?> 
<tr> 
    <td><?= $i+1 ?></td> 
    <td><input type=text name=x1 size=10 value="<?=$data[$i]['something']"></td> 
    <td><input type=text name=y1 size=10 value="<?=$data[$i]['somethingelse']"></td> 
    <td><input type=text name=z1 size=10 value="<?=$data[$i]['somethingelseagain']"></td> 
</tr> 
<?php 
} // end for 
?> 

Конечно, вы не можете копировать и мимо выше, но это хорошая отправная точка.

Для динамического использования вы не можете использовать php. Похоже, что вы хотите использовать javascript ajax и php.

+0

Я хочу сделать это динамичным способом. –

1

Я создал soemthing подобный, и я думаю, что это поможет вам. Я использовал jQuery для динамического создания полей ввода. Пожалуйста, проверьте эту ссылку: Dynamically add form fields

0

Добавляет некоторые HTML ко всем абзацам.

<!DOCTYPE html> 
<html> 
<head> 
    <style> 
    p { background:yellow; } 
</style> 
    <script src="http://code.jquery.com/jquery-1.9.1.js"></script> 
</head> 
<body> 
    <p>I would like to say: </p> 
<script> 
    $("p").append("<strong>Hello</`enter code here`strong>"); 
</script> 

</body> 
</html>