Enregistrement de mêmes inputs à la queue leu leu

Répondre
Polhux
le 22/09/2005 à 20:22
Polhux
Bonsoir,

En fait, je recherche l'inverse de la commande :
while ($data = mysql_fetch_array($req))
qui m'affiche tous les tuples correspondant aux conditions demandées.

Un autre membre vient de poser une question qui se rapproche de mon problème mais je crois qu'il est différent.

Chaque jour, je dois enregistrer le même type d'information, à savoir 2 dates et 4 nombres.
Certains jours, je n'ai qu'un seul enregistrement à faire, d'autres jours, 3, 6 ou 8.

Un formulaire d'une ligne écran me suffit amplement pour un enregistrement. Et dans ce cas, pas de problème pour mettre les infos dans la base.

Mais, j'aimerais pouvoir, avec un seul bouton submit, pouvoir enregistrer une ou plusieurs lignes avec 6 inputs identiques de même nom. Evidement, les infos, elles, sont différentes. Donc c'est un enregistrement répétitif que je voudrais pouvoir faire avec autant d'enregistrement qu'il y a de lignes de remplies.

Avec la commande foreach peut-être ? Mais comment écrire cela :
For each (chaque ligne)
If (isset($_POST['date1']) && isset($_POST['date2']) && ………. Pour mes 6 inputs)
(il y a un petit traitement)
$query = "INSERT INTO ….

Merci et une bonne soirée
Polhux
LA GLOBULE
le 23/09/2005 à 01:23
LA GLOBULE
Regarde le cours sur les variables dynamiques, il y a un exemple qui correspond exactement à ton problème :)
Polhux
le 24/09/2005 à 19:29
Polhux
Le cours sur les variables dynamiques se termine par "Alors, convaincu ?". Oui je suis convaincu qu'il doit s'agir de la bonne solution mais je ne suis pas convaincu d'avoir tout compris. Loin s'en faut. Du moins pour l'appliquer à mon problème.

Je suppose que tu fais allusion au dernier exemple de la page du cours ! Bien que j'ai une hésitation avec l'exemple.
$tableau1 = array ('test', 'toto', 'titi');
$tableau2 = array ('humpf', 'grmbl');

Pour le cas du champs caché,
$champ_cache = $_POST['champ_cache'];
function insert() {
// code
}
le système se met en erreur parce que j'ai justement plusieurs fois des champs qui portent le même nom, je suppose. (Même sans champ caché, en testant, si je désactive 5 des 6 lignes du formulaire, j'enregistre sans problème. Dès que je réactive les 5 autres lignes, même sans les remplir, j'ai des messages d'erreurs, lors de l'exécution)

Mais de toute manière, dans les 2 autres cas, je suis paumé. J'ai, en XHTML, en faisant court :
<input type="text" name="doc_date" size="10">
<input type="text" name="doc_nombre1" size="8">
<input type="text" name="doc_nombre2" size="8">

Donc je dois déjà contrôler mes entrées
if (isset($_POST[doc_date']) &&
isset($_POST[doc_nombre1']) &&
isset($_POST[doc_nombre2']) {…
Je ne comprends déjà pas comment le système va comprendre qu'il doit contrôler 2, 4, 6 fois des entrées ayant les mêmes noms de variable.

Ensuite, si c'est le dernier exemple qui convient, 'je ne comprends pas très bien comment travailler sur le nombre de champs. Mon nombre de champs, selon l'exemple que j'ai donné sera toujours 3 X le nombre de lignes complétées.

Enfin, quoi qu'il en soit, pour le moment je suis dans le cirage. Ne pourriez-vous pas me donner 2-3 éléments plus précis SVP.
Polhux
Bzh
le 25/09/2005 à 11:35
Bzh
Il me semble, que pour générer plusieur input de même nom il faut utiliser un tableau exemple :

<input type="file" name="fichier[]">
<input type="file" name="fichier[]">
<input type="file" name="fichier[]">
<input type="file" name="fichier[]">
<input type="file" name="fichier[]">


Ensuite, il te suffit tout simplement, avec un foreach de récupérer toutes les valeurs du tableau.

Dans mon cas se sera un tableau en 3 dimentions...

C' est ce qui est souvent utiliser pour les emails (exemple gmail) pour ajouter un nombre non défini de pièce jointe. Un petit script javascript génére le nombre de formulaire 'file' dynamiquement comme le souhaite l' utilisateur!!!

Enfin, je suis pas persuadé d' avoir répondu à ta question...

Peut être que ce sera un peut plus clair...

Bye...
Répondre

Ecrire un message

Votre message vient d'être créé avec succès.
LoadingChargement en cours