Ajouter donnes a la base de donnee php

Résolu/Fermé
bretonm2004 Messages postés 319 Date d'inscription vendredi 9 mai 2008 Statut Membre Dernière intervention 30 août 2013 - 2 févr. 2011 à 22:05
bretonm2004 Messages postés 319 Date d'inscription vendredi 9 mai 2008 Statut Membre Dernière intervention 30 août 2013 - 3 févr. 2011 à 14:21
Bonjour,

j ai un script javascript qui me permet d'ajouter des champs a un formulaire

<script>
function create_champ(i) {

var i2 = i + 1;

document.getElementById('leschamps_'+i).innerHTML = ' <input type="text" name="marque_'+i+'" size="10"></span> <input type="text" name="modele_'+i+'" size="10"></span> <input type="text" name="routeurid_'+i+'" size="10"></span> <input type="text" name="motdepasse_'+i+'" size="10"></span> <input type="file" name="fichier_'+i+'" size="10"></span>';
document.getElementById('leschamps_'+i).innerHTML += (i <= 10) ? '<br /><span id="leschamps_'+i2+'"><a href="javascript:create_champ('+i2+')">Ajouter un champs</a></span>' : '';


}
</script>

ma question est quand j'envoie mon formulaire a la bd comment je doit m'y prendre ne sachant pas combien de champ il va y avoir

<tr>
<td><input type="text" name="marque_1" size="10" /></td>
<td><input type="text" name="modele_1" size="10" /></td>
<td><input type="text" name="routeurid_1" size="10" /></td>
<td><input type="text" name="motedepasse_1" size="10" /></td>
<td><input type="file" name="fichier_1" size="10" /></td>
</tr>
</table>

<span id="leschamps_6"><a href="javascript:create_champ(6)">Ajouter un champs</a></span>



A voir également:

1 réponse

Groarh Messages postés 682 Date d'inscription vendredi 1 août 2008 Statut Membre Dernière intervention 28 juin 2015 185
Modifié par Groarh le 2/02/2011 à 22:14
C'est pas très méchant. Je vais te donner quelques indices ;)

D'abord, ça dépend quelle est ta méthode de requête (POST ou GET). Mettons que c'est POST.
Tu auras des variables du genre $_POST["marque_$i"] où $i est un nombre entier.
Là je propose une boucle for ou while. Et pour savoir à quel moment s'arrêter... Soit tu envoies le nombre de champs avec le reste de la requête, soit tu testes l'existence de la variable avec la fonction isset().
Finalement, pour que tout ça se retrouve dans la BDD, mets ta requête INSERT dans la boucle for/while (tu ouvres ta connexion à la base avant la boucle, et tu la refermes après).

Bon courage ;)
1
bretonm2004 Messages postés 319 Date d'inscription vendredi 9 mai 2008 Statut Membre Dernière intervention 30 août 2013 2
Modifié par bretonm2004 le 2/02/2011 à 22:21
bonjour

pour mettre les données je n'ai aucun probleme c est au niveau de la boucle while que je n y comrend rien faut t-il que je mette le while dans le post de mes varriable ce st la que je bloque

et je sais qu il va faloir que je mette un i++ pour l auto increment


merci
0
Groarh Messages postés 682 Date d'inscription vendredi 1 août 2008 Statut Membre Dernière intervention 28 juin 2015 185
3 févr. 2011 à 13:50
Salut,
en fait je réalise qu'il faudra sans doute tester l'existence de toutes les variables. Donc, pour simplifier les choses, il faudrait que tu envoies le nombre de champs générés, via un input caché :
<input type="hidden" id="nb_champs" name="nb_champs" value="0" />

À chaque fois que l'utilisateur clique sur « ajouter un champ », ta fonction create_champ() est appelée.. À ce moment-là, il faut mettre à jour la valeur de nb_champs :
document.getElementById('nb_champs').value = i2;

En PHP, tu peux alors récupérer cette valeur pour faire une boucle for :
$n = $_POST['nb_champs'];
for ($i = 0; $i < $n; $i++) {
    ...
}

Je n'en dis pas plus. Bon courage ;)
0
bretonm2004 Messages postés 319 Date d'inscription vendredi 9 mai 2008 Statut Membre Dernière intervention 30 août 2013 2
3 févr. 2011 à 14:21
salut

je suis désolé mais je ne comprend pas tres bien :(

document.getElementById('nb_champs').value = i2;

ca je doit mettre ca ou

ensuite la valeur nb_champs va me donner le nombre de champs a placer dans la bd ca je le comprend bien

peut etre juste ce truc la a clarifier svp

marci beaucoup
0