Ajouter donnes a la base de donnee php [Résolu/Fermé]

Signaler
Messages postés
319
Date d'inscription
vendredi 9 mai 2008
Statut
Membre
Dernière intervention
30 août 2013
-
Messages postés
319
Date d'inscription
vendredi 9 mai 2008
Statut
Membre
Dernière intervention
30 août 2013
-
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>



1 réponse

Messages postés
682
Date d'inscription
vendredi 1 août 2008
Statut
Membre
Dernière intervention
28 juin 2015
184
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
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 60511 internautes nous ont dit merci ce mois-ci

Messages postés
319
Date d'inscription
vendredi 9 mai 2008
Statut
Membre
Dernière intervention
30 août 2013
2
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
Messages postés
682
Date d'inscription
vendredi 1 août 2008
Statut
Membre
Dernière intervention
28 juin 2015
184
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 ;)
Messages postés
319
Date d'inscription
vendredi 9 mai 2008
Statut
Membre
Dernière intervention
30 août 2013
2
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