[RESOLU] Soumettre un formulaire avec des champs indéterminés

Eléphant du PHP | 61 Messages

27 avr. 2019, 02:49

Bonjour...
Je ne sais pas trop si c'est possible mais je cherche une solution pour soumettre et stocké les informations d'un formulaire qui à un nombre de champs indéterminé ( c'est a dIre le nombre de chambres dépend de l'utilisateur) donc il peut en avoir 1 où 15 par exemple. 8-)
Merci d'avance pour vos réponses.

Mammouth du PHP | 1967 Messages

27 avr. 2019, 08:54

C'est possible et il y a même plusieurs solution.

soit tu serialise les info dans un seul champs mais une recherche dans la base des informations est plus difficile
soit tu connais le nombre maximum absolu de champs et tu crée le nombre adéquat de colonne
soit tu as une table spécifique avec un lien vers la table de résultat et un champ "delta" pour permettre un nombre illimité de champs.
Spols
pour les fan de rubik's cube ou pour les curieux ==> le portail francophone du rubik's cube

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 9782 Messages

27 avr. 2019, 11:06

Tout dépend aussi ce que tu veux faire avec les données enregistrées.
Si tu n'as pas besoin de traitement en groupe qui nécessiterait une base de données, par exemple si c'est juste pour réafficher uniquement ces infos plus tard, tu peux simplement enregistrer les infos récupérées dans un fichier texte, 1 fichier par utilisateur et voilà !
Quand tout le reste a échoué, lisez le mode d'emploi...

Eléphant du PHP | 61 Messages

27 avr. 2019, 22:29

Bonsoir merci déjà pour vos réponses.

Concernant ce que je veux faire avec les informations récupérées, c'est pour les envoyer par mail. Aucuns traitement ne vas être effectué.

Avatar du membre
Eléphanteau du PHP | 19 Messages

27 avr. 2019, 22:46

une autre solution peu etre d'indenter les noms de ton formulaire
et de passer en parametre le nombre de champs
du style

Code : Tout sélectionner

$i=1; $nb_form_utilisateur=25; while ($i <= $nb_form_utilisateur ) { echo '<textarea id="indent'.$i.'" name="indent'.$i.'" rows="5" cols="33">'.$i.'</textarea><br>'; $i++; } echo '<input id="nb_form_utilisateur" name="nb_form_utilisateur" type="hidden" value="'.$nb_form_utilisateur.'">';

et dans ta page de post :

Code : Tout sélectionner

$nb_form_utilisateur=$_POST["nb_form_utilisateur"]; $i=1; while ($i <= $nb_form_utilisateur ) { $valeur_a_inserer=$_POST["indent$i"]; sql="insert into... nom_du_champ='$valeur_a_inserer' WHERE..."; .... $i++; }
Modifié en dernier par saveus le 27 avr. 2019, 23:10, modifié 1 fois.
EX Administrateur infogérence infrastructure web.( chaine de télévision ; et autre site a données sensibles). Très bonne connaissance en : routeur , firewall ,switch , serveur linux ubuntu ,apache , php, mysql (y compris master-slave), et bien d'autre technologies. Pratiquant le php assez regulierement , depuis la version 3.0 ,surtout comme langage de script ,tel que pour redémarrer des services windows via une interface web. Cherchant a se reconvertir ,suite a un Burn-out ,dans le dev php-mysql ,sur paris,RP-ouest.

Eléphant du PHP | 61 Messages

27 avr. 2019, 23:06

Merci pour ta réponse... J'essaye sa maintenant.

En passant le même principe peux fonctionner avec des "Select". Je me dit que ces toujours mieux pour un utilisateur de choisir que de saisir.

Avatar du membre
Eléphanteau du PHP | 19 Messages

27 avr. 2019, 23:14

oui ca marche avec tout les type de formulaire , j ai pris textarea pour l'exemple.
ps j ai fait quelque corrections de ";" oublié
EX Administrateur infogérence infrastructure web.( chaine de télévision ; et autre site a données sensibles). Très bonne connaissance en : routeur , firewall ,switch , serveur linux ubuntu ,apache , php, mysql (y compris master-slave), et bien d'autre technologies. Pratiquant le php assez regulierement , depuis la version 3.0 ,surtout comme langage de script ,tel que pour redémarrer des services windows via une interface web. Cherchant a se reconvertir ,suite a un Burn-out ,dans le dev php-mysql ,sur paris,RP-ouest.

Eléphant du PHP | 61 Messages

28 avr. 2019, 00:27

@saveus
Merci pour ta solution. Sa m'a au moins mis sur la bonne route pour pour résoudre mon problème. Bien évidemment je l'ai résolu grâce à ton exemple.

Encore merci