2009-08-14 9 views
5

Je ne suis pas vraiment un programmeur web, mais je crée une application web simple qui a une forme où l'utilisateur peut entrer une série de points (x, y, z) mais je ne sais pas combien de l'utilisateur va entrer. Je ne veux pas deviner le maximum probable (100 peut-être?) Et mettre 100 champs sur le formulaire, car il aurait l'air moche. Quel est le moyen le plus simple d'ajouter plus de champs (ou d'afficher des champs) lorsque l'utilisateur saisit des données sans contacter le serveur.Comment puis-je ajouter dynamiquement des champs de saisie à un formulaire?

Actuellement, je suis en train d'utiliser html & php, mais je suppose que pour faire cela, j'ai besoin de javascript?

Actuellement, mon code ressemble à ceci, lorsque l'utilisateur entre des données, je veux qu'une autre ligne apparaisse.

<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> 

Une idée le plus simple? Merci ...

Répondre

7

Je voudrais utiliser jQuery et append les nouvelles entrées.

+0

Cela fonctionne très bien, merci. –

0

Ce que vous dites est que vous écrivez à la main les étiquettes d'entrée? Ou dites-vous que vous voulez une action dynamique où un utilisateur clique sur un bouton et il ajoute plus de lignes de table?

En tout cas, pour votre code, vous avez juste besoin d'une boucle, comme ça. Je suppose que $ les données sont toutes les données que vous souhaitez définir la base d'un tableau qui est probablement de la base de données ou quelque chose:

<?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 
?> 

Bien sûr, vous ne pouvez pas copier et au-delà de ce qui précède, mais c'est un bon point de départ.

Pour le faire dynamiquement, vous ne pouvez pas utiliser php. Qu'est-ce que vous voulez utiliser est javascript ajax, et la combinaison php.

+0

Je veux le faire de manière dynamique. –

1

J'ai créé quelque chose de similaire et je pense que cela pourrait vous aider. J'ai utilisé jQuery pour créer des champs de saisie de façon dynamique. Veuillez vérifier ce lien: Dynamically add form fields

0

Ajoute du code HTML à tous les paragraphes.

<!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> 
Questions connexes