Renseigner une liste déroulante à partir d'une base access

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Renseigner une liste déroulante à partir d'une base access

par Cyrano » 01 août 2005, 09:37

En fait, cyrano est encore plus rapide que moi mais il se bat avec un virus ...
J'ai eu le virus qui n'en était même pas un en plus, alors un problème de PHP, tu penses bien :langue:

par Reel Big Spike » 01 août 2005, 09:35

Waouh, parfait, ça marche ! Comme toujours, c’est quand on la solution sous les yeux que ça paraît limpide. Un grand merci à toi, divinité du savoir indienne ! Image


Merci aussi à vous autres qui m'avez aussi aider. C'est vraiment agréable de pouvoir compter sur vous en cas de pépin de ce genre ! :pouce:

par Cyrano » 01 août 2005, 09:04

Bon, j'ai l'impression qu'il manque des trucs : essaye avec ça :
<?php
$selectClient = ("SELECT Client FROM Societes") ;
$reselectClient = odbc_exec($connexion,$selectClient) or die("Ne peut pas exécuter la requête.") ;
?>
<form method="post" action="">
<select name="Liste">
<?php
while ($tab_result = odbc_fetch_array ($reselectClient))
{
?>
  <option value="<?php echo($tab_result['Client']); ?>"><?php echo($tab_result['Client']); ?></option>
<?php
}
?>
</select>
<!-- .... reste de ton code de formulaire ... -->

par Reel Big Spike » 01 août 2005, 08:51

Et bien écoute, je viens de vérifier, et tout concorde.

Je mets des copier-coller pour que vous puissiez voir s’il y a une faute de frappe. Voici déjà ma requête en php :

Code : Tout sélectionner

$selectClient = ("SELECT Client FROM Societes") ; $reselectClient = odbc_exec($connexion,$selectClient) or die("Ne peut pas exécuter la requête.") ;
Ensuite, dans ma base, on peut trouver la table :
Societes
Et enfin, dans la table Societes, j’ai un champ :
Client
Donc tout concorde. Le champ Client est renseigné avec des noms, des vrais, aucun chiffre. De plus, je viens de compter le nombre de 1 retourné par le code généré, et il concorde exactement avec le nombre de clients présents dans la table société. :|

par Cyrano » 01 août 2005, 08:29

Estu bien sûr qu'ils sont dans ta base tes client ? Si tu exécutes ta requête dans MS-Access, tu as bien une liste normale ?

Ce que je ne comprends pas, c'est d'où sortent ces "1" ni à quoi ils peuvent bien correspondre... :-k

par Reel Big Spike » 01 août 2005, 08:05

Désolé pour le retard, week end occupé oblige... :)

C’est ce que j’avais fait la première fois, mais comme il n’y avait pas eu d’évolution visuellement, j’ai préféré essayer autre chose.

Bon, j’ai regardé le code généré, et j’obtiens ceci :

Code : Tout sélectionner

<td> <form method="post"> <select name="choix"> 111111111111111111111111111111......................... </select> </td>
Il y a toute une ribambelle de 1 qui se suivent. Visiblement, ils correspondent aux nombres d’occurrences retournés par ma requête.

L'idée serait donc de remplacer ces fameux 1 par les noms de mes clients...

par zeus » 29 juil. 2005, 16:28

En fait, cyrano est encore plus rapide que moi mais il se bat avec un virus ...

Sinon, je voulais que tu fasse
while (...) {
  print_r($tab_result);
  echo ...;
}
Et que tu nous donnes le code HTML généré

par Reel Big Spike » 29 juil. 2005, 15:47

Maintenant que tu le dis... Ca expliquerait bien des choses. :-k

Je suppose que les grands sportifs ont tous une face cachée peu glorieuse. C’est la rançon de la gloire ! :mrgreen:

par mere-teresa » 29 juil. 2005, 15:38

Et ça lève pas trop le ton avec les autres membres, qui n'ont pas le temps de répondre ?
En fait, il est dopé.

par Reel Big Spike » 29 juil. 2005, 15:35

On sent que ça te fait plaisir d'être le plus rapide. Et ça lève pas trop le ton avec les autres membres, qui n'ont pas le temps de répondre ? :D

Sinon, j'ai essayé, voici mon code maintenant :

Code : Tout sélectionner

while ($tab_result = odbc_fetch_row ($reselectClient)) { echo "<option>".print_r($tab_result[0])."</option>" ; }
Et maintenant, j'ai bien quelque chose dans ma liste. Touuuuuuute une succession de 1. Partout, plein. Par contre, ça a légèrement augmenté la largeur de la liste.

par zeus » 29 juil. 2005, 15:25

Dans la boucle while met un
print_r($tab_result);
Et ouaip, t'es vraiment un rapide. Tu risques même de répondre aux questions avant qu'on les pose à ce niveau là... :D
:langue: :pouce:

par Reel Big Spike » 29 juil. 2005, 15:02

Effectivement, je viens de regarder le code, et j'ai une foule de :

Code : Tout sélectionner

<option></option><option></option><option></option>
qui s'enchaîne. Ca vient bien de là, ma liste est pas assez large pour afficher les résultats, mais le code est quand même exécuté

Et ouaip, t'es vraiment un rapide. Tu risques même de répondre aux questions avant qu'on les pose à ce niveau là... :D

par zeus » 29 juil. 2005, 14:55

Et si tu regarde le code HTML généré, tu as quoi ?

Si la liste déroulante et pas assez large, c'est qu'elle est vide parce qu'elle s'adapte à la largeur de son contenu

EDIT ---
Cette fois ci, 2mn, la derniere fois 6mn
T'as raison, je suis FULGURANT. (pour le dieu de la foudre, c'est un comble) :langue:

par Reel Big Spike » 29 juil. 2005, 14:53

Fiou, encore une fois, quelle rapidité, zeus ! :D

Bon, j’ai essayé, et ça marche plus ou moins. Le plus vient du fait que lorsque je clique sur le bouton fléché de ma liste déroulante, je vois un petit ascenseur qui indique que j’ai bien toutes les occurrences de mes clients. Le moins, c’est que je n’arrive pas à élargir ma liste déroulante pour afficher les noms des clients, ce qui fait que je ne vois que du blanc.

Ensuite, j’ai essayé de récupérer la valeur de la liste, mais ça passe pas. Je suppose qu’il faut autre chose qu’un $_POST, non ?

En tout cas, un grand merci pour m'avoir déjà donné une grosse partie de la solution. :pouce:
J'y retourne en attendant...

par zeus » 29 juil. 2005, 14:31

if ($reselectClient)
{
    echo "<form method=\"post\">\n";
    echo "<select name=\"Liste\">\n";
    while ($tab_result = odbc_fetch_row ($reselectClient))
    {
            echo "<option>".$tab_result[0]."</option>";
    }
    echo "</select>";
}