Script php
Bonjour a tous brave gens!!!!!!!!!!
Bon voila j'aimerai savoir si vous n'auriez pas une fonction
php qui me permette de creer des cases a cocher dans mes
différents formulaire (grace a l'appel de la fonction)
Et un script qui me permette de mettre ces valeurs dans ma base (choix multiple).
Bon voila j'aimerai savoir si vous n'auriez pas une fonction
php qui me permette de creer des cases a cocher dans mes
différents formulaire (grace a l'appel de la fonction)
Et un script qui me permette de mettre ces valeurs dans ma base (choix multiple).
27 réponses
Résumé de la discussion
Problème central: créer dynamiquement des cases à cocher dans des formulaires PHP et enregistrer les valeurs sélectionnées dans une base de données, en gérant correctement le passage en mode multi-sélection. Des échanges portent sur les conventions de nommage et l'utilisation d'un tableau pour les valeurs, par exemple des champs nommés avec des crochets (nom_case[]) afin de capturer une sélection multiple et faciliter l'insertion. D'autres évoquent des difficultés liées au nommage des champs (Nom_Chien ou Nom_Chat) et suggèrent une approche avec une fonction qui génère les cases et une autre qui traite les valeurs.
-
Mais si je met seulement .$nom_case je ne pourrai pas effectuer une selection multiple pour mes cases a cocher non??
-
ContributeurBen tu met simplement '.$nom_case à la place de var[], je vois pas où est le problème...
Si ca ne marche pas c'est que ta variable n'est sans doute pas ou mal initialisée à l'appel de ta fonction, ou alors que la syntaxe pour ecrire $resultat.= '<input type="checkbox" name="var[]" n'est pas la bonne mais j'en doute..
++ -
voici mon code php
function case_cocher($requete, $nom_case, $defaut) { global $host_bb, $login_bd, $pass_bd, $nom_bd; $connection = ouvrir_db($host_bd, $login_bd, $pass_bd_sapa, $nom_bd); $result = mysql_query($requete); if ($result == 0) { $resultat = 'Impossible d\'effectuer cette requete '.$requete; } else { if (mysql_num_rows($result)==0) { $resultat = 'Aucune donnée ne correspond à votre requête'; } else { $i=0; $resultat='<table></tr><td>'; while($ligne=mysql_fetch_row($result)){ list($cle,$val)=each($ligne){ $resultat.= '<input type="checkbox" name="var[]" value="'.$val.'">'.$val.'<br>'; }$i++; if($i%10==0){ $resultat.='</td><td>'; } } }$resultat.='</td></tr></table>'; } fermer_db($connection); return $resultat; }
le $nom_case est donné a l'appel de la fonction dans mon formulaire.Il change pour chaque champ.
Dans le code que j'ai donné j'ai mis un var [] qui est une constante ce qui donc ne me permet pas de gerer les champs séparement d'un meme formulaire.
J'aimerai mettre a la place une variable -
fais voir ton code php y compris la fonction ou $nom_champ s'initialise !
-
ModérateurBen sans avoir le code source html ça va être dur de savoir d'ou vient le problème....
Tu as quoi comme navigateur?
Avec internet explorer tu ne peux pas afficher la source des diférents cadres? -
Oui c ca. Enfin disons que j'arrive a la faire marcher lorsque je met une constante dans le name de mes input type =checkbox.
Mais la mes différentes valeurs de cases a coché de mes différents champs ne sont pas séparés (comme si ils appartiennent au meme champs) -
je reprends ton pblème!
si j'ai bien compris,les case à cocher st variables et après leurs affichage et tu enregistre les modif des values par l'utilisateur!
mais ta fct d'insertion ne marche pas !!!
c'est ça ?? -
Ca me donne la meme chose
-
click droit ds ton cadre où il y a le code->Afficher la source
-
ModérateurDe plusieurs frames?
En ce cas selectione la frame appropriée ou se trouve ton code source.
Il faut juste que tu trouves le code html de ton formulaire.
Avec ça on aura des indices.... -
Ben quand je fais ca ca me montre qu'un bout de mon code..
(ma page est constitué de plusieurs fenetre) -
Affichage-> Source
-
Vu que c une fonction qui génère le code html comment je fais pour te montrer que le code html
-
ModérateurOk. Tu pourrais coller ici ton code source html généré par le php?
-
Ben non parcke chaque champs a un nom différent.
Donc si je veux par exemple générer des cases a cocher pour Nom_Chien ben le $nom_case correspondra a Nom_Chien si par contre cé pour Nom_Chat il correspondra a nom_Chat.... -
ModérateurDonc tes cases auront toute le même nom?
Ca donne quoi ton formulaire généré en regardant dans la source html? -
le $nom_case est un paramètre d'entrée dans ma fonction qui correspond au nom du champs de ma table
meme sans le point ca ne fonctionne pas
(besoin d'aide urgente) -
ModérateurIl se base sur quoi ton $nom_case ?
Et là je crois qu'il ya un soucis:
$nom_case.[]
Si tu mets des crochets pour adire que tu veux le champs d'un tableau, il n'ya pas de point entre le nom de la variable et les crochets.... -
Donc s'il vous plait comment arriver a trouver une variable pour le name que je puisse reutiliser dans ma fonction d'insertion.
Interessez vous
please -
J'ai commencer a faire quelque chose...je pense pas que ce soit bon parcke pour l'instant ca fonctionne pas.
enfin ca affiche les cases mais ca ne les prend pas ensuite dans ma base.
while($ligne=mysql_fetch_row($result)){ list($cle,$val)=each($ligne); $resultat.= '<input type="checkbox" name="'.$nom_case.[]'" value="'.$val.'">'.$val.'<br>'; }$i++; if($i%10==0){ $resultat.='</td><td>'; }
et mon $nom_case correspond au nom du champ.
Pour l'insertion dans ma base j'ai un truc dans ce style
$debut_requete = "INSERT INTO $objet ("; $fin_requete = ") VALUES("; while(list($cle,$valeur)=each($champs)) { if($cle==Nom_Sequence && $objet==alignements){ $nom=$_POST["$nom_case"]; for($i=0;$i<count($nom);$i++){ $debut_requete .="$cle, "; $fin_requete .="'$valeur[$i]', "; } } $debut_requete .= "$cle, "; $fin_requete .= "'$valeur', "; } $requete = substr($debut_requete, 0, strlen($debut_requete)-2).substr($fin_requete, 0, strlen($fin_requete)-2).")";
Mais bon tout ca ne fonctionne pas vu que mon $nom est vide
- 1
- 2
Suivant