Mettre 02 (deux) "value" dans une même "option"

Résolu/Fermé
Mikkalo Messages postés 11 Date d'inscription jeudi 12 octobre 2017 Statut Membre Dernière intervention 6 mars 2018 - 24 févr. 2018 à 15:59
Mikkalo Messages postés 11 Date d'inscription jeudi 12 octobre 2017 Statut Membre Dernière intervention 6 mars 2018 - 27 févr. 2018 à 11:02
Bonjour tout le monde et merci pour vous qui prenez le temps de me lire,

Il y a deux jours déjà que j'essaie de résoudre un problème en vain.

J'ai renseigné dans ma base de données, une liste de revendeurs sous cette forme (id, N° Telephone, Site Web).
Dans mon code HTML, il y a les noms des pays de ces revendeurs respectifs comme l'atteste mon fichier
index.html ci-dessous :

<form name="users_form" method="post" action="traitement.php">

<select id="select" name="users" onchange="showUser(this.value)">

<option value=" ">Sélectionnez votre pays:</option>
<option value="2">France</option>
<option value="4">Belgique</option>
<option value="5">Nigeria</option>
<option value="6">Suisse</option>
<option value="7">Ghana</option>
<option value="8">GABON</option>
<option value="9">Mali</option>

</select>
</form>


Jusque là, quand je sélectionne mon pays en faisant appel à la base de données, le revendeur en question de ce pays
s'affiche dans un tableau dans la même page. Ce qui est exactement ce que je voulais.

Maintenant, lorsque je voulais sélectionner plusieurs revendeurs pour ce même pays, c'est là où intervient mon problème.

Il me faut donc avoir 2 ou plusieurs "value" dans une même "option", comme ça quand je sélectionne le pays en question
la liste de tous les revendeurs apparaissent en même temps dans un tableau. Ce qui constitue mon vrai problème. J'essaie
avec la fonction explode de PHP en vain.

Quelque chose comme ça par exemple :

<form name="users_form" method="post" action="traitement.php">

<select id="select" name="users" onchange="showUser(this.value)">

<option value=" ">Sélectionnez votre pays:</option>
<option value="1|2">France</option>
<option value="3|4">Belgique</option>
<option value="5|6">Nigeria</option>
<option value="7|8">Suisse</option>
<option value="9|10">Ghana</option>
<option value="11|12">GABON</option>
<option value="13|14">Mali</option>

</select>
</form>


ou bien je ne sais pas si c'est comme ça :

<form name="users_form" method="post" action="traitement.php">

<select id="select" name="users" onchange="showUser(this.value)">

<option value=" ">Sélectionnez votre pays:</option>
<option value="1" value="2">France</option>
<option value="3" value="4">Belgique</option>
<option value="5" value="6">Nigeria</option>
<option value="7" value="8">Suisse</option>
<option value="9" value="10">Ghana</option>
<option value="11" value="12">GABON</option>
<option value="13" value="14">Mali</option>

</select>
</form>




Quelqu'un connait-il une méthode ou bien comment utiliser efficacement la fonction explode pour arriver à ce résultat ?

Merci d'avance pour vos réponses.
A voir également:

1 réponse

jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024 4 650
24 févr. 2018 à 17:27
Bonjour,

Dans ta BDD, pour la table contenant les revendeurs.. tu dois y ajouter un champ : id_pays
et c'est par rapport à cet id_pays que tu dois rechercher les revendeurs à afficher.


0
Mikkalo Messages postés 11 Date d'inscription jeudi 12 octobre 2017 Statut Membre Dernière intervention 6 mars 2018
26 févr. 2018 à 12:27
Bonjour Jordane,

D'abord je tiens à te remercier pour l'intérêt porter sur mon problème. Ainsi, donc je te mets directement dans le vif du du sujet.

Dans mon cas, je ne dispose que d'une seule table revendeurs dans ma base de données. Je me suis inspirée de l'exemple sur cette page : https://www.w3schools.com/php/php_ajax_database.asp

Sauf que dans mon cas, je veux afficher plusieurs revendeurs dans une même table, quand je sélectionne un pays.

Voilà mon problème..je veux bien utiliser cette méthode sur la page indiquée ci-dessus pour le faire.

Merci Jordane
0
jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024 4 650
26 févr. 2018 à 12:39
Dans ta table actuelle (si je regarde le lien que tu me donnes....) tu as le champ "Hometown"

Il faut donc faire ta recherche par rapport à ce champ :

$q= !empty($_POST['q']) ? $_POST['q'] : NULL;

$sql="SELECT * FROM user WHERE Hometown= '".$q."'";


Et pour que ça fonctione ... dans ta liste déroulante (ton select html..) tu dois remplacer les ID par le nom des villes
<select id="select" name="pays" onchange="showUser(this.value)">

<option value=" ">Sélectionnez votre pays:</option>
<option value="France">France</option>
<option value="Belgique">Belgique</option>
<option value="Nigeria">Nigeria</option>

 ... etc...

</select>
0
Mikkalo Messages postés 11 Date d'inscription jeudi 12 octobre 2017 Statut Membre Dernière intervention 6 mars 2018 > jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024
26 févr. 2018 à 12:56
Ok, merci jordane. Je vais l'essayer et je te fais un retour.
0
Mikkalo Messages postés 11 Date d'inscription jeudi 12 octobre 2017 Statut Membre Dernière intervention 6 mars 2018
Modifié le 26 févr. 2018 à 13:48
Hello Jordane,

J'ai fait exactement comme tu me l'a montré, mais ça me retourne l'erreur suivante :

Warning: mysqli_fetch_array() expects parameter 1 to be mysqli_result, boolean given in D:\xampp\htdocs\afrie\traitement.php on line 42
0
jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024 4 650
26 févr. 2018 à 14:09
Sans voir ton code php .... impossible de te répondre !
0