A voir également:
- Select multiple php mysql
- Easy php - Télécharger - Divers Web & Internet
- Mysql community server - Télécharger - Bases de données
- Liste déroulante choix multiple excel - Guide
- Ecran multiple pc - Guide
- Windows presse papier multiple - Guide
7 réponses
mpmp93
Messages postés
6648
Date d'inscription
mercredi 13 avril 2011
Statut
Membre
Dernière intervention
28 septembre 2015
1 339
31 mai 2011 à 14:08
31 mai 2011 à 14:08
Bonjour,
Queqlues réflexes simples. Pour commencer dans le script chargé de traiter les données POSTées:
print_r($_POST);
vous verrez que $_POST['pj'] est un array
$pj = $_POST['pj'];
print_r($pj); // affiche array et les valeurs cochées
Pour stocker le contenu de ce array de $pj, il y a une soluce simple: serialize
Au moment d'enregistrer les données,
pj = serialize($pj); // prévoir un champ assez grand
Pour récupérer les données, faire l'inverse: unserialize
$pj = unserialize($monChamp); // $monchamp pointe sur le contenu du champ sérialisé
A+
Queqlues réflexes simples. Pour commencer dans le script chargé de traiter les données POSTées:
print_r($_POST);
vous verrez que $_POST['pj'] est un array
$pj = $_POST['pj'];
print_r($pj); // affiche array et les valeurs cochées
Pour stocker le contenu de ce array de $pj, il y a une soluce simple: serialize
Au moment d'enregistrer les données,
pj = serialize($pj); // prévoir un champ assez grand
Pour récupérer les données, faire l'inverse: unserialize
$pj = unserialize($monChamp); // $monchamp pointe sur le contenu du champ sérialisé
A+
Peut être devrait tu essayer avec des "name" différents ? (je suis presque sûr que c'est le problème)
Bonjour mahmoud, non ca ne marche pas car le champ de ma table se nomme pj et quand je je met pj y a qu'une seule case a coche qui passe, je lu quelques sujet qu'il faut faire un tableau c'est pour ca j'ai mi pj[] mais j'ai pas su comment le parcourir avec array dans ma page cible.
quelqu'un peut m'aider svp et merci
quelqu'un peut m'aider svp et merci
Colbi97
Messages postés
564
Date d'inscription
mardi 3 mars 2009
Statut
Membre
Dernière intervention
25 novembre 2015
12
31 mai 2011 à 12:20
31 mai 2011 à 12:20
Bonjour,
Il va falloir expliquer un peu plus le fonctionnement de ton site si tu veux une aide complète.
En tout cas, c'est effectivement un problème de "name" qui doit être différend pour chaque checkbox sinon le navigateur ne retourne qu'un seul enregistrement, et il n'est pas possible de faire un array en (x)html, par contre tu peux donner des name uniques et ensuite dans le code de ta page cible les regrouper dans un array.
Il va falloir expliquer un peu plus le fonctionnement de ton site si tu veux une aide complète.
En tout cas, c'est effectivement un problème de "name" qui doit être différend pour chaque checkbox sinon le navigateur ne retourne qu'un seul enregistrement, et il n'est pas possible de faire un array en (x)html, par contre tu peux donner des name uniques et ensuite dans le code de ta page cible les regrouper dans un array.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Bonjour Colbi97, en faite j'ai un formulaire avec des cases à cocher , l'utilisateur a la possibilité de cocher plusieurs case, et j'ai une page cible qui contient le traitement php.
J'ai essayer de mettre le tout avec un meme name pj mais dans ce cas là quand l'utilisateur coche par exemple 3 options dans la base de données je n'ai que la dernière case enregistré et pas le reste.
J'ai lu qu'avec un array on peut le faire mais je n'ai pas su comment ?
si vous pouvez m'aider svp
voilà une partie du traitement de ma page cible si vous pouvez m'aider à traiter la variable de case à cocher pj et merci:
J'ai essayer de mettre le tout avec un meme name pj mais dans ce cas là quand l'utilisateur coche par exemple 3 options dans la base de données je n'ai que la dernière case enregistré et pas le reste.
J'ai lu qu'avec un array on peut le faire mais je n'ai pas su comment ?
si vous pouvez m'aider svp
voilà une partie du traitement de ma page cible si vous pouvez m'aider à traiter la variable de case à cocher pj et merci:
<?php include('connex.inc.php'); if( !empty($_POST['nom'])&& !empty($_POST['prenom'])&& !empty($_POST['cin'])&& !empty($_POST['etablissement'])&& !empty($_POST['email']) && !empty($_POST['telephone'])&& !empty($_POST['adresse'])&& !empty($_POST['type']) && !empty($_POST['referenceoffre']) && !empty($_POST['delai']) && isset($_FILES['avatar']) && isset($_FILES['CV']) ) { //récupération des données saisies dont des variables $nom=mysql_escape_string($_POST['nom']); $prenom=mysql_escape_string($_POST['prenom']); $cin=mysql_escape_string($_POST['cin']); $etablissement=mysql_escape_string($_POST['etablissement']); $email=mysql_escape_string($_POST['email']); $telephone=mysql_escape_string($_POST['telephone']); $adresse=mysql_escape_string($_POST['adresse']); $type=mysql_escape_string($_POST['type']); $referenceoffre=mysql_escape_string($_POST['referenceoffre']); $descriptionsujet=mysql_escape_string($_POST['descriptionsujet']); $delai=mysql_escape_string($_POST['delai']); $avatar=$dossier.$fichier; $CV=$dossier1.$fichier1; //Requête SQL $requete="INSERT INTO formulaire (nom, prenom, cin,etablissement, email,telephone, adresse,type,referenceoffre, descriptionsujet,delai,avatar,CV) VALUES ('$nom' ,'$prenom','$cin','$etablissement', '$email','$telephone','$adresse','$type','$referenceoffre','$descriptionsujet', '$delai', '$avatar', '$CV')";
Colbi97
Messages postés
564
Date d'inscription
mardi 3 mars 2009
Statut
Membre
Dernière intervention
25 novembre 2015
12
31 mai 2011 à 14:15
31 mai 2011 à 14:15
Comme expliqué dans mon message précédent, les "checkbox" ne peuvent pas avoir le même nom et il n'est pas possible de passer directement par un array (le html ne le permet pas...), il va donc falloir passer par des noms différends et les récupérer ensuite.
Par contre, dans le code que tu as posté, je ne vois pas la référence à tes checkbox, quel traitement veux tu faire ? Sous quelle forme rentre tu leurs valeurs dans ta base ?
Par contre, dans le code que tu as posté, je ne vois pas la référence à tes checkbox, quel traitement veux tu faire ? Sous quelle forme rentre tu leurs valeurs dans ta base ?
wolves'sbrother
Messages postés
218
Date d'inscription
samedi 7 février 2009
Statut
Membre
Dernière intervention
13 juillet 2011
34
Modifié par wolves'sbrother le 31/05/2011 à 14:02
Modifié par wolves'sbrother le 31/05/2011 à 14:02
salut,
SI tu veux récupérer les cases cochés avec un tableau, prenons ton exemple :
Dans la page qui reçoit les infos, tu met :
et ça devrait marché
SI tu veux récupérer les cases cochés avec un tableau, prenons ton exemple :
<td>Pièce jointe (rar/zip)<span class="rouge">*</span> :</td> <td>CV:<input name="pj[]" type="checkbox" value="CV" /> <br /> Attestation:<input name="pj[]" type="checkbox" value="attestation" /> Diplôme:<input name="pj[]" type="checkbox" value="diplome" />
Dans la page qui reçoit les infos, tu met :
$tab =$_POST['pj']; print_r($tab); // Pour voir toutes les valeurs du tableau
et ça devrait marché
Bonjour wolves tout d'abord merci pour votre,avec votre méthode j'ai pu récupéré les valeurs grace à print_r($tab) mais dans la base de données le champ reste vide
voilà ce que j'ai fais (c'est une partie de mon code et les ... sont des codes
encore Merci
voilà ce que j'ai fais (c'est une partie de mon code et les ... sont des codes
encore Merci
$tab =$_POST['pj']; if( !empty($_POST['nom'])&& !empty($_POST['prenom'])&& !empty($_POST['cin'])&& !empty($_POST['etablissement'])&& !empty($_POST['email']) && !empty($_POST['telephone'])&& !empty($_POST['adresse'])&& !empty($_POST['type']) && !empty($_POST['referenceoffre']) && !empty($_POST['delai']) && !empty($_POST['pj']) && isset($_FILES['avatar']) && isset($_FILES['CV']) ) { //récupération des données saisies dont des variables $nom=mysql_escape_string($_POST['nom']); $prenom=mysql_escape_string($_POST['prenom']); $cin=mysql_escape_string($_POST['cin']); $etablissement=mysql_escape_string($_POST['etablissement']); $email=mysql_escape_string($_POST['email']); $telephone=mysql_escape_string($_POST['telephone']); $adresse=mysql_escape_string($_POST['adresse']); $type=mysql_escape_string($_POST['type']); $referenceoffre=mysql_escape_string($_POST['referenceoffre']); $descriptionsujet=mysql_escape_string($_POST['descriptionsujet']); $delai=mysql_escape_string($_POST['delai']); $avatar=$dossier.$fichier; $pj=mysql_escape_string($_POST['pj']); $CV=$dossier1.$fichier1; $requete="INSERT INTO formulaire (nom, prenom, cin,etablissement, email,telephone, adresse,type,referenceoffre, descriptionsujet,delai,avatar,pj,CV) VALUES ('$nom' ,'$prenom','$cin','$etablissement', '$email','$telephone','$adresse','$type','$referenceoffre','$descriptionsujet', '$delai', '$avatar','$pj', '$CV')"; . . . echo "<br><br>"; echo "Référence de la demande :" .$referenceformulaire. "<br><br>"; echo "Nom :" .$nom. "<br><br>"; echo "Prénom :" .$prenom. "<br><br>" ; echo "CIN (Mot de passe) :" .$cin ."<br><br>"; echo "Etablissement :" .$etablissement ."<br><br>"; echo "E-mail (Identifiant) :" .$email. "<br><br>" ; echo "Téléphone :" .$telephone. "<br><br>" ; echo "Adresse :" .$adresse. "<br><br>" ; echo "Type :" .$type. "<br><br>" ; echo "Référence offre :" .$referenceoffre. "<br><br>" ; echo "Délai de la réponse :" .$delai. "<br><br>" ; print_r($tab);