|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Invité régulier
![]() Inscription : novembre 2010 Messages : 59 ![]() |
Bonjour à tous,
J'ai créé un formulaire avec trois tables : - une table formulaire (avec un id, un nom, ...), - une table intermédiaire nommée siteformulaire (avec id_formulaire et id_site) - une table site (qui contient un id et un nom), cette dernière étant reliée à une checkbox de mon formulaire. Je souhaite effectuer une requête qui met à jour automatiquement les champs de la checkbox par rapport aux données dans la table site. Exemple : si dans la table site, il y a deux noms affectés, il sera affiché dans le formulaire deux cases checkbox avec leur nom. Je souhaite obtenir le résultat suivant dans la table site formulaire : * Si un utilisateur rentre deux données, on aura le résultat suivant : - id_formulaire = 1 id_site = 1 (=>"Internet") - id_formulaire = 1 id_site = 2 (=>"Presse") * Si un deuxième utilisateur rentre ses données, on aura le résultat suivant : - id_formulaire = 2 id_site = 2 (=>"Presse") - id_formulaire = 2 id_site = 3 (=>"Autres") De plus je souhaiterais pouvoir afficher les noms affectés à la checkbox lorsque l'utilisateur coche telle ou telle case de la checkbox. J'ai essayé de convenir à cet objectif sans pouvoir y parvenir. Voici mon code... Code :
Merci |
||
|
|
00
|
|
|
#2 |
![]() ![]() |
Bonjour,
il faut dire que tu nous compliques la vie : ![]() - appeler tes tables (de la BdD) "site" et "formulaire", avec des identifiants id_site et id_formulaire, - avoir plusieurs formulaires (<form> donc) ... identifiés ... id="id-formulaire" (?) - ($aSitesForm as $iSite => $sSite) - <... name="site[]" ..... - ($aFormsForm as $iForm => $sForm) - <... name="form[]" ..... Bref, ca sent les quiproquo (quiproqui ?) à gogo !
__________________
"Ce qui se conçoit bien s'énonce clairement - Et les mots pour le dire arrivent aisément." Nicolas Boileau-Despréaux, Homme de lettres français (1636-1711), principal théoricien de l'esthétique classique. Site perso Mes tutos DVP : Gestion-Affichage de Nouvelles - Affichage en tableau HTML - Fonctions de redimensionnement d'images
|
|
|
10
|
|
|
#3 | |
|
Invité régulier
![]() Inscription : novembre 2010 Messages : 59 ![]() |
Citation:
Un seul formulaire est géré. Il y a bien un formulaire complet mais je n'ai repris que la partie checkbox. La table formulaire de ma bdd fait référence à tous les champs du formulaire qui sont de type texte (ou similaire). La table site fait également partie du formulaire (en référence aux données de la checkbox "Comment avez vous connu ce site ?") mais comme il s'agit de données de type tableau je l'ai lié à la table formulaire avec une table intermédiaire nommée site formulaire. Cette dernière a un id_formulaire qui renseigne l'id de la table formulaire et un id_site qui renseigne l'id de la table site. Lorsqu'il y a un "a", un "s" ou un "i" devant le "$" d'une clé, d'une valeur, ... cela fait référence eu type de ces données ("a" pour array, "i" pour integer et "s" pour string). S'il y a d'autres points qui vous paraissent peu clairs, dites le moi merci. |
|
|
|
00
|
|
|
#4 | |
![]() ![]() |
Citation:
__________________
"Ce qui se conçoit bien s'énonce clairement - Et les mots pour le dire arrivent aisément." Nicolas Boileau-Despréaux, Homme de lettres français (1636-1711), principal théoricien de l'esthétique classique. Site perso Mes tutos DVP : Gestion-Affichage de Nouvelles - Affichage en tableau HTML - Fonctions de redimensionnement d'images
|
|
|
|
10
|
|
|
#5 | ||
|
Invité régulier
![]() Inscription : novembre 2010 Messages : 59 ![]() |
Bonjour à tous,
Pour en revenir au code que j'ai effectué (et qui marchait) juste avant celui présenté au dessus, le voici... Code :
En fait, si je rassemble tout le code du formulaire sur un seule page (comme présenté ci dessus) je n'ai pas de problème au niveau des requêtes pour les deux tables intermédiaires ("demandeformulaire" et "site") mais si je sépare mon code sur deux fichiers pour pouvoir séparer la partie formulaire de la partie traitement (comme vu en premier message de cette discussion) seule la requête pour la table "siteformulaire" est prise en compte et je voudrais bien évidemment que la requête concernant la table "demandeformulaire" soit également fonctionnelle. Je ne vois vraiment pas comment faire et je ne maîtrise vraiment pas l'association de requêtes avec boucle while, mysql_fetch_assoc et foreach. On m'a dit d'utiliser ce moyen pour pouvoir dissocier les requêtes de chaque checkbox mais je ne vois vraiment pas comment faire. Merci de bien vouloir m'éclairer. |
||
|
|
00
|
|
|
#6 |
![]() ![]() |
Bonjour,
D'abord, bravo et merci pour ton codage clair, propre, commenté et bien indenté. Quelques remarques : -> sort le code html du code php -> mauvaise utilisation des "label for=" (for -> id, pas name) -> aucune "gestion d'erreur" (ne serait-ce que la validité de l'email) -> tes requêtes ne sont PAS DU TOUT protégées contre les injections SQL ! -> mysql_real_escape_string() Sinon ... si ton code ci-dessus fonctionne, quel est le problème ? Le fait de "séparer" traitement et formulaire ne change pas grand'chose ... Ou je ne comprends pas ce que tu entends par "séparer" (sur 2 pages différentes ?)
__________________
"Ce qui se conçoit bien s'énonce clairement - Et les mots pour le dire arrivent aisément." Nicolas Boileau-Despréaux, Homme de lettres français (1636-1711), principal théoricien de l'esthétique classique. Site perso Mes tutos DVP : Gestion-Affichage de Nouvelles - Affichage en tableau HTML - Fonctions de redimensionnement d'images
|
|
|
10
|
|
|
#7 | |
|
Invité régulier
![]() Inscription : novembre 2010 Messages : 59 ![]() |
Citation:
|
|
|
|
00
|
|
|
#8 |
![]() ![]() |
Peux-tu mettre les codes "après séparation" des différentes pages (+nom des pages) ?
__________________
"Ce qui se conçoit bien s'énonce clairement - Et les mots pour le dire arrivent aisément." Nicolas Boileau-Despréaux, Homme de lettres français (1636-1711), principal théoricien de l'esthétique classique. Site perso Mes tutos DVP : Gestion-Affichage de Nouvelles - Affichage en tableau HTML - Fonctions de redimensionnement d'images
|
|
|
10
|
|
|
#9 | ||||
|
Invité régulier
![]() Inscription : novembre 2010 Messages : 59 ![]() |
J'ai remis le code en deux parties. Dans la partie traitement les parties commentées fonctionnent mais celles ou il n'y a rien me pose problème mais normalement c'est la bonne méthode (c'est un pro qui m'a donné ce code sans m'expliquer davantage comment il l'a construit)
Code :
Code :
|
||||
|
|
00
|
|
|
#10 | ||
![]() ![]() |
"traitement.php" est en "include" dans "formulaire.php" !
-> "traitement" et "formulaire" ne sont donc pas séparés ! Seuls les scripts sont sur 2 pages différentes. Avec l'"include", c'est exactement comme si les scripts étaient sur une seule et même page. Code :
__________________
"Ce qui se conçoit bien s'énonce clairement - Et les mots pour le dire arrivent aisément." Nicolas Boileau-Despréaux, Homme de lettres français (1636-1711), principal théoricien de l'esthétique classique. Site perso Mes tutos DVP : Gestion-Affichage de Nouvelles - Affichage en tableau HTML - Fonctions de redimensionnement d'images
|
||
|
|
10
|
|
|
#11 |
|
Invité régulier
![]() Inscription : novembre 2010 Messages : 59 ![]() |
Oui séparé dans le sens ou ils sont dans deux fichiers ce que j'ai certifié plus haut. Mais du coup le code ne marche plus, c'est une chance si j'ai pu le faire fonctionner dans un seul fichier. Je sais que cela ne change rien si les deux fichiers sont joint mais pour la partie requête cela pose problème. Je pense que l'on m'a dit de faire comme cela car sinon il y a des interférences entre les requêtes pour la table "site" et la table "demande" car elles sont construites sur le même modèle (certains noms comme $id_formulaire à la ligne 150 et 178 sont identiques donc du coup la requête va rechercher l'info demandée pour la table "site" mais ne la répète pas pour la table "demande", etc...).
|
|
|
00
|
|
|
#12 | |
![]() ![]() |
Relis mon précédent message
Citation:
__________________
"Ce qui se conçoit bien s'énonce clairement - Et les mots pour le dire arrivent aisément." Nicolas Boileau-Despréaux, Homme de lettres français (1636-1711), principal théoricien de l'esthétique classique. Site perso Mes tutos DVP : Gestion-Affichage de Nouvelles - Affichage en tableau HTML - Fonctions de redimensionnement d'images
|
|
|
|
10
|
|
|
#13 |
|
Invité régulier
![]() Inscription : novembre 2010 Messages : 59 ![]() |
Oui je sais bien que l'include permet cela mais c'est le fait de répéter certaines informations je pense qui engendre un problème mais je ne sais pas comment rectifier ce défaut.
Dans mon 5ème message tu verras dans la partie requête à la ligne 46 à 47 quasiment le même code qu'à la ligne 185 à 186 concernant les tables "siteformulaire" et "site". |
|
|
00
|
|
|
#14 | ||
![]() ![]() |
Il ne faut donc pas écrire :
Citation:
Citation:
__________________
"Ce qui se conçoit bien s'énonce clairement - Et les mots pour le dire arrivent aisément." Nicolas Boileau-Despréaux, Homme de lettres français (1636-1711), principal théoricien de l'esthétique classique. Site perso Mes tutos DVP : Gestion-Affichage de Nouvelles - Affichage en tableau HTML - Fonctions de redimensionnement d'images
|
||
|
|
10
|
|
|
#15 |
|
Invité régulier
![]() Inscription : novembre 2010 Messages : 59 ![]() |
oui désolé, c'est en renommant mes fichiers que j'ai fait l'erreur. Sinon j'ai pu résoudre mon problème bien que le code reste complexe. C'était un problème de nommage de variables, lesquelles n'étaient pas bien distinguées lors du traitement.
Encore merci |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com