Formulaires HTML/PHP - ajouter une ligne

Fermé
Richard - 18 déc. 2002 à 09:50
Tiller Messages postés 781 Date d'inscription mercredi 4 juillet 2007 Statut Membre Dernière intervention 14 septembre 2008 - 14 juil. 2007 à 11:37
J'ai créé un formulaire pour une page Web, et je voudrais que lorsqu'on clique sur un bouton ajouter à droite d'un champ de texte (INPUT type="text"....), un champ de texte supplémentaire s'ajoute au-dessous du premier, etc... Cela permet d'ajouter si nécessaire un nombre indéfini de champs de texte. Suis-je obligé lorsqu'un bouton "ajouter" est cliqué de regénérer un nouveau formulaire ou non ?
Merci pour votre aide...

16 réponses

Bobinours Messages postés 2898 Date d'inscription jeudi 26 avril 2001 Statut Membre Dernière intervention 21 mars 2013 504
18 déc. 2002 à 20:24
Salut,
Tu n'es pas obligé de recharger la page pour cela. Il faut alors que tu utilises du DHTML (et les DOM).

Place ton input dans un <DIV> que tu modifieras à l'aide de la fonction innerHTML. Utilise une variable globale pour faire un compteur du nombre d'INPUT afin de leur donner un nom incrémentiel :

cpt_input = 1;

function ajout_input()
{
cpt_input++;
text = '<input type="texte" name="test'+ cpt_input + '">';
document.getElementById("les_inputs").innerHTML =+ text;
}

<div id="les_inputs"><input type="texte" name="test1"></div>

A tester et à améliorer...

Ceci n'est pas compatible NS4 et IE4 (c'est possible, mais demande plus d'effort).

-= Bobinours =-
2
Bobinours Messages postés 2898 Date d'inscription jeudi 26 avril 2001 Statut Membre Dernière intervention 21 mars 2013 504
12 juil. 2007 à 23:36
Tout à fait d'accord avec Tiller. C'est scandaleux de faire resurgir un vieux post du forum. La mort est encore trop douce pour des gens de ton espèce.

Ceci étant dit, Le code d'A'Gain semble tout à fait correct. Il est simplement incomplet. As-tu mis l'ensemble de son code dans ta page et particulièrement la ligne :
var frm = document.forms[0];
Si oui, as-tu défini une balise <form> dans ta page ?
La ligne précédente récupère les informations du premier formulaire présent dans ta page HTML, hors ton message d'erreur semble indiquer qu'il n'en trouver aucun.

N'hésite pas à montrer l'ensemble de ton code si ça ne fonctionne toujours pas.


PS : Passe au bureau de la comptabilité pour prendre ton chèque...
1
Tiller Messages postés 781 Date d'inscription mercredi 4 juillet 2007 Statut Membre Dernière intervention 14 septembre 2008 211
13 juil. 2007 à 15:57
<html>
<head>
<script language=javascript> 
function fAddInput(txtType, txtName, txtId, txtValue) 
{ 
var newInput= document.createElement("INPUT"); 
newInput.value=txtValue; 
newInput.name= txtName; 
newInput.id= txtId; 
newInput.type = txtType; 
document.getElementById('mon_formulaire').appendChild(newInput); 
} 
</script>
</head>
<body>

<form id="mon_formulaire">
<input value="Ajouter"  type="button" onclick='fAddInput("text","btnEssai","btnEssai", "Valider");'/>
</form>

</body>
</html>


Je l'ai test en local sa marche parfaitement, maintenant laissons reposé se topic en paix~

Et je ne t'ai ni traité de con ni de rien alors me traite pas d'imbecile de troll sinon on va pas etre pote~
1
"Primo", Apprends à parler français, tes fautes d'orthographe c'est "relou".
"ça marche", "reposer", et les accents c'est géré maintenant, l'ASCII c'est dépassé ;

Ensuite NON on va pas être potes,

et tu restes un imbécile de Troll...

++ rhmal
0
guismo69 Messages postés 50 Date d'inscription jeudi 12 juillet 2007 Statut Membre Dernière intervention 4 août 2007 3
13 juil. 2007 à 21:56
des trolls ? ou ca des trolls ?

ZUT il y a un t devant ce n'est pas des rolls dommage, ne vous prenez pas la tete ne n'est pas le lieu pour cela

ne le prenez pas mal surtout c'etait pour refaire baisser la tension
0
Tiller Messages postés 781 Date d'inscription mercredi 4 juillet 2007 Statut Membre Dernière intervention 14 septembre 2008 211
14 juil. 2007 à 11:37
Et beh sa fait plaisir d'aider de cons comme ça °°
1

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
JEROMAX Messages postés 274 Date d'inscription jeudi 22 février 2001 Statut Membre Dernière intervention 7 octobre 2013 10
18 déc. 2002 à 10:09
pour ne pas te prendre la tête, tu créé une dizaine de champ vide invisible, que tu rend visible un par un au fur et à mesure des clic.
Utilise plutôt "display" que "visible" d'ailleurs.

[ JEROMAX ] http://www.jeromax.free.fr
0
Une petite fonction toute simple qui te permet d'inserer des inputs dynamiquement dans un formulaire.

<script language=javascript>
function fAddInput(txtType, txtName, txtId, txtValue)
{
var newInput= document.createElement("INPUT");
newInput.value=txtValue;
newInput.name= txtName;
newInput.id= txtId;
newInput.type = txtType;
var frm = document.forms[0];
window.frm.appendChild(newInput);
}
fAddInput("button","btnEssai","btnEssai", "Valider");

</script>

Tu peux insérer ton input, dans pas mal d'objets (Form, DIV, TR , ...)

function fAddInput(txtType, txtName, txtId, txtValue, objParent)
{
var newInput= document.createElement("INPUT");
newInput.value=txtValue;
newInput.name= txtName;
newInput.id= txtId;
newInput.type = txtType;
objParent.appendChild(newInput);
}
fAddInput("button","btnEssai","btnEssai", "Valider", objDiv);
0
Bobinours Messages postés 2898 Date d'inscription jeudi 26 avril 2001 Statut Membre Dernière intervention 21 mars 2013 504
18 déc. 2002 à 21:37
Nettement plus propre.

-= Bobinours =-
0
Utilisateur anonyme
18 déc. 2002 à 21:39
Et en php exclusif, il est obligé de rafraichir ?

Kalamit,
Je ponce donc j'essuie
0
Bobinours Messages postés 2898 Date d'inscription jeudi 26 avril 2001 Statut Membre Dernière intervention 21 mars 2013 504
18 déc. 2002 à 22:31
Euh... Oui.

-= Bobinours =-
0
Utilisateur anonyme
18 déc. 2002 à 22:51
Bien ce qu'il me semblait...

Kalamit,
Je ponce donc j'essuie
0
JEROMAX Messages postés 274 Date d'inscription jeudi 22 février 2001 Statut Membre Dernière intervention 7 octobre 2013 10
19 déc. 2002 à 09:42
ça veut dire quoi "php exclusif" ?
(parce que je n'ai pas vu de php...)

[ JEROMAX ] http://www.jeromax.free.fr
0
Utilisateur anonyme
19 déc. 2002 à 09:52
Bah je voulais dire par la, "uniquement en php". Les languages de script coté client ont une facheuse tendance à s'executer differement sur chaque navigateur...

Kalamit,
Je ponce donc j'essuie
0
Merci à tous pour votre aide. Je débute alors c'est pas facile. J'aimerais cependant ne pas mettre de JAVA dans mes pages, seulement du HTML et PHP. Je crée une interface sous forme de pages Web destinées à être le plus compatibles possibles avec tous les environnements...

Ah au fait, j'ai autre chose à vous demander : j'ai créé un formulaire html qui envoie les variables à une page en .php. Le problème c'est que cette page envoie à une autre page .php mais les variables entrées dans la 1ère page ne sont alors plus disponibles !... Je dois déclarer les variables en GLOBAL ou quoi ? Merci encore
0
Bobinours Messages postés 2898 Date d'inscription jeudi 26 avril 2001 Statut Membre Dernière intervention 21 mars 2013 504
19 déc. 2002 à 16:23
!!!!! ATTENTION !!!!!
Ne mélange pas JAVA et JavaScript. C'est au JavaScript que tu fais allusion. Le JAVA n'a rien à voir. C'est un langage à part. Regarde sur ce site pour voir la différence.

Pour concerver des informations de pages en pages, ce n'est pas évident. Il y a plusieurs solutions : Les Cookies, Les sessions PHP et les champs de formulaires cachés.

Pour la dernière, il faut que tu crées autant de <INPUT type="hidden" name="nomDuCahmp" value="$valueDuChamp"> en récupérant les valeurs grace à PHP.
Elles seront alors retransmises à la page suivante.

-= Bobinours =-
0
Bonjour, je relance le sujet 5 ans plus tard!

Je suis très intéressé par cette fonction, mais je n'arrive pas à m'en servir,

""""
window.frm has no properties
[Break on this error] window.frm.appendChild(newInput);
""""
quelqu'un peut-il mettre un exemple de code html avec un boutton qui ajouterai un nouvel input SVP?

merci bcp par avance !
0
Tiller Messages postés 781 Date d'inscription mercredi 4 juillet 2007 Statut Membre Dernière intervention 14 septembre 2008 211
12 juil. 2007 à 20:50
Primo) C'est pas malin de faire renaitre un topic qui date de y'a 5ans
Secondo) Pas la peine de s'en vanté °°
Tercio) Deux code on été donnée et ils marchent parfaitement, a toi de les adaptés.
0
Oulalalaaa faut s'calmer tout de suite mon p'tit !

"Primo) " C'est pas parce que ce topic date d'il y a 5 ans que nous sommes tous censé savoir utiliser le code fourni sans problème !!!!
"Secondo) " Je ne me suis vanté de rien
"Tercio) " Je n'ai jamais dis que les codes donnés ne marchaient pas, j'ai fait comprendre que je n'arrivais pas à les utiliser!

Si t'es un gros débile de Troll qui connait tout sur tout du monde tant mieu pour toi... Mais accepte que d'autre ne soit pas si "malin"
0
oui oui merci je suis un gros con qui mérite la mort je sais j'ai compri,

BREF

mon code donne ça:

<html>
<head>
<script language=javascript> 
function fAddInput(txtType, txtName, txtId, txtValue) 
{ 
var newInput= document.createElement("INPUT"); 
newInput.value=txtValue; 
newInput.name= txtName; 
newInput.id= txtId; 
newInput.type = txtType; 
var frm = document.forms[0]; 
window.frm.appendChild(newInput); 
} 
</script>
</head>
<body>

<form>
<input value="Ajouter"  type="button" onclick='fAddInput("text","btnEssai","btnEssai", "Valider");'/>
</form>

</body>
</html>


...
Auriez-vous une idée?
0
Bobinours Messages postés 2898 Date d'inscription jeudi 26 avril 2001 Statut Membre Dernière intervention 21 mars 2013 504
13 juil. 2007 à 21:12
Euh... En ce qui me concerne, je plaisantais, hein ^^'
Il me semblait que le ton était suffisamment ironique, mais spagrave.
0