Combo box de choix avec les enregistrement d'une table

Signaler
Messages postés
54
Date d'inscription
dimanche 20 décembre 2009
Statut
Membre
Dernière intervention
8 avril 2013
-
Messages postés
54
Date d'inscription
dimanche 20 décembre 2009
Statut
Membre
Dernière intervention
8 avril 2013
-
Bonjour, j'ai relevé sur le site une fonction permettant de créer un combobox avec les enregistrements d'une table

mais impossible de la faire fonctionner, il n'y a rien qui s'affiche
merci de votre aide
liste_cotis.php
$table3="types_reglt";

//Ma fonction est dans un fichier fonctions.php au même niveau que mon script de traitement liste_cotis.php

include("fonctions.php");// On inclut dans la page les Fonctions nécessaire au bon fonctionnement du script
on envoi les paramètres de la fonction

echo choix_reglt('SELECT `type_reglt`, `libelle_type_reglt` FROM `$table3`', 'Choisir le Type de Règlements');//fonction liste déroulante

//Affichage de la combo box
echo $html //variabl return de la fonction


Fonction se trouvant dans le fichier fonctions.php

function choix_reglt ($sql, $nom, $selected 0, $defautSelected 'Cliquez ici pour sélectionner') {
// On execute la requête
if (false !($query mysql_query ($sql)))
{
// On vérifie que la requête retourne quelque chose
if (mysql_num_rows ($query) != 0) {
// Variable $html contenant le code HTML à renvoyer
$html = '<select name="'.$nom.'">
<option value="0"'.(($selected == 0)?' selected="selected"':'').'>'.$defautSelected.'</option>';
// Boucle parcourant le résultat de la requête
while ($value = mysql_fetch_row ($query)) {
// Pour chaque enregistrement on ajoute une option dans la liste
$html .= '
<option value="'.$value[0].'"'.(($selected == $value[0])?' selected="selected"':'').'>'.$value[1].'</option>';
}
// Fin de la liste déroulante
$html .= '</select>';
// On renvoi le code HTML
return $html;
// Sinon, si la requête ne retourne rien
} else {
// On renvoi false
return false;
}
// Sinon la requête est fausse
} else {
// On renvoi false
return false;
}
}

8 réponses

Messages postés
1654
Date d'inscription
dimanche 7 septembre 2008
Statut
Membre
Dernière intervention
11 septembre 2013
18
bonjour

j'ai fait un petit changement dans cette fonction
essaie voir
a++


function choix_reglt ($sql, $nom, $selected 0, $defautSelected 'Cliquez ici pour sélectionner') {
// On execute la requête
if (false !($query mysql_query ($sql)))
{
// On vérifie que la requête retourne quelque chose
if (mysql_num_rows ($query) != 0) {
// Variable $html contenant le code HTML à renvoyer




$html = '

'.$defautSelected.'';

// Boucle parcourant le résultat de la requête

while ($value = mysql_fetch_row ($query)) {

// Pour chaque enregistrement on ajoute une option dans la liste
$html .= ''.$value[1].'';
}

// Fin de la liste déroulante
$html .= '';

// On renvoi le code HTML
return $html;

// Sinon, si la requête ne retourne rien

} else {
// On renvoi false

return false;
}
// Sinon la requête est fausse
} else {
// On renvoi false

echo 'prob query';
// ou
// return false;

}
}

?>
Messages postés
54
Date d'inscription
dimanche 20 décembre 2009
Statut
Membre
Dernière intervention
8 avril 2013

merci de ta réponse
pas de message d'erreur mais a la place de la combo
j'ai
?>prob query
Messages postés
1654
Date d'inscription
dimanche 7 septembre 2008
Statut
Membre
Dernière intervention
11 septembre 2013
18
as tu testé dans phpmyadmin ta requête sur la table avec la fenêtre sql ?
je pense que la query ne fonctionne pas
tu devrais ecrire

$sql = "ce qui marche dans phmyadmin";

//puis appeler la fonction

function choix_reglt ($sql, $nom, $selected 0, $defautSelected 'Cliquez ici pour sélectionner');

a++
Messages postés
54
Date d'inscription
dimanche 20 décembre 2009
Statut
Membre
Dernière intervention
8 avril 2013

merci à toi pour ta disponibilité
Désolé de t'avoir fait travailler pour rien
en fait j'ai crée la table sur mon localhost, et pas sur mon site
et bien entendu je faisais les essais sur mon site

POUR CEUX INTÉRESSE CE script FONCTIONNE TRÈS BIEN DANS SA VERSION ORIGINALE (donc du premier message)

APPEL DE LA FONCTION
echo choix_reglt('SELECT `type_reglt`, `libelle_type_reglt` FROM `$table3`', 'Choisir le Type de Règlements');//fonction liste déroulante


JE REMERCIE L4AUTEUR UNE TRES BONNE FONCTION QU'IL FAUT DANS SA BOITE A OUTILS
Messages postés
54
Date d'inscription
dimanche 20 décembre 2009
Statut
Membre
Dernière intervention
8 avril 2013

Bonjour cod57

peux tu me dire comment je récupère le résultat de la combo dans une variable me servant à faire un tri
sur mon type_reglt dans le where d'un select ,?
merci d'avance et excuse moi pour hier, coup de fatigue
Messages postés
1654
Date d'inscription
dimanche 7 septembre 2008
Statut
Membre
Dernière intervention
11 septembre 2013
18
bonjour

$choix = "???";
$table3 ="???";

$sql = "SELECT * FROM ".$table3." where type_reglt='".$choix."' limit 1";

veux tu recuperer la variable à partir de la fonction ?

il faudrait faire un tableau qui retourne $html et $choix ...

a++
Messages postés
54
Date d'inscription
dimanche 20 décembre 2009
Statut
Membre
Dernière intervention
8 avril 2013

merci de ta réponse

oui je pensais pouvoir récupérer la valeur du choix pour m'en servir pour faire un tri

// déclaration de tableau
$tri=@$_GET['tri'];
if($tri==''){$tri="id_cotis DESC";} // on met le tri par défaut ASC ou DESC
if($tri==''){$tri="Il n'y a pas d'Enregistrement sur la Base";} //message QUAND IL N'Y A RIEN DE RÉCUPÉRÉ PAR GET

// puis :
$requete = "SELECT * FROM $table WHERE type_reglt=????Valeur du retour de la combo 1-2 ou 3???????? order by ".$tri;
$valeur = mysql_query($requete);
Messages postés
54
Date d'inscription
dimanche 20 décembre 2009
Statut
Membre
Dernière intervention
8 avril 2013

si qq'un passe par là
j'arrive au bout, tout fonctionne bien,il me manque la recuperation de la variable envoyée en POST de la variable récupérée
Quand je fais un choix + go! je récupère et j'envoie bien l'indice de ma liste
voila ce que j'ai dans mon navigateur

http://cg-aisne.org/adherents/liste_cotis.php?liste_type_cotis= 2

donc normalement je devrais pouvoir afficher le resultat et faire ma requête

// Récupération du $post
echo $_post[liste_type_cotis];//pour voir
echo $_post[liste_type_reglt];

echo $indice_cotis=$_post[liste_type_cotis];
echo $indice_cotis;//pour voir

echo $indice_reglt=$_post[liste_type_reglt];
echo $indice_reglt;//pour voir

si qq'un a une idée ??????????????????????? Merci d'avance

Partie finale du script
// combobox Affichage des champs d'une table de choix
include("fonctions.php");// On inclut dans la page les Fonctions nécessaire au bon fonctionnement du script

//Déclaration du tableau contenant les combo
echo'';
echo'----
';
echo'';
//fonction liste deroulante
echo'<form action =liste_cotis.php methode=post name=form_reglt';
echo "Type De Cotisation :
" ;

echo', ';
echo'';
echo liste_choix('SELECT `id_type_cotis`, `libelle_type_cotis` FROM `galette2_types_cotisation`', 'liste_type_cotis');
echo'';
echo'</form>';
echo', ';
echo'';
//fonction liste deroulante
echo'<form action=liste_cotis.php methode=post name=form_reglt';
echo "Type De Réglement :
" ;
echo', ';
echo'';
echo liste_choix('SELECT `type_reglt`, `libelle_type_reglt` FROM `galette2_types_reglt`', 'liste_type_reglt');
echo'';
echo'</form>';
echo', ';
echo'';

// Récupération du $post
echo $_post[liste_type_cotis];//pour voir
echo $_post[liste_type_reglt];

echo $indice_cotis=$_post[liste_type_cotis];
echo $indice_cotis;//pour voir

echo $indice_reglt=$_post[liste_type_reglt];
echo $indice_reglt;//pour voir

// sélectionne toutes les fiches de la table $table
$requete = "SELECT * FROM $table where id_type_cotis=$indice_cotis order by 'date_enreg'asc ";
$valeur = mysql_query($requete);

// Décocher echo Pour voir combien cette requête retourne d'enregistrements
echo "Nombre d'adhésion / Ré-adhésion : ".mysql_num_rows($valeur)."
";
echo', ';
echo'';
echo'
';
?>