Faire apparaitre directement des donées apres choix dans un liste

lorgard Messages postés 56 Date d'inscription vendredi 26 avril 2002 Statut Membre Dernière intervention 22 juillet 2009 - 7 juin 2006 à 09:37
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 - 8 juin 2006 à 07:06
Plop tout le monde

j'ai une tite question,

j'ai recupéré des données dans une bdd MySql via

while ($row = mysql_fetch_assoc($rslt))
{echo "<option>".$row['prenom']."</option>";}

ca marche nickel

mais il y'a a d'autres champs dans la bdd et ce que j'aimerais, c'est que dés que l'utilisateur fait un choix dans la liste deroulante , j'affiche le reste des données qui lui sont relié ^^

exemple
le liste prenom

l'utilisateur choisi robert (oui je sais je sais lol) et a coté j'affiche age/poid/taille etc etc etc

ce qu'il me manque en fait c'est coment actualiser la page et aller chercher les données voulu au moment ou le choix est fait

(j'aimerais que ca se fasse automatiquement, sans passer par un bouton "ok")

si vous pouviez m'aider

merchi

lorgard

16 réponses

malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
7 juin 2006 à 09:55
Hello,

avec un attribut onchange sur ta balise select.

Tu peux voir un exemple ici (même si là, on parle de listes déroulantes liées...mais bon, onchange y est utilisé) :
http://www.codyx.org/snippet_listes-deroulantes-liees_89.aspx#229
0
lorgard Messages postés 56 Date d'inscription vendredi 26 avril 2002 Statut Membre Dernière intervention 22 juillet 2009
7 juin 2006 à 10:09
merchi bcp

je suis allé voir ton code

si je prend la version sans requete xmlhttp

juste un ptit truc que je comprend pas :)

onchange="document.getElementById('mainForm').submit();">

si tu pouvais juste me decrire ce que sont les different elements ^^

submit c'est le choix non ?

mais ca
document.getElementById('mainForm')

c'est quoi  ?

je veux dire, a quoi ca correspond?
0
lorgard Messages postés 56 Date d'inscription vendredi 26 avril 2002 Statut Membre Dernière intervention 22 juillet 2009
7 juin 2006 à 10:16
c'est de l'anglais, suffit de lire.. suis bete lol

bon j'ai lancé et compris le principe
0
lorgard Messages postés 56 Date d'inscription vendredi 26 avril 2002 Statut Membre Dernière intervention 22 juillet 2009
7 juin 2006 à 10:18
merchi bcp de ton aide

par contre je vois pas comment transformer (lier) ma recuperation d'info

while ($row = mysql_fetch_assoc($rslt))
{echo "<option>".$row['prenom']."</option>";}

en ca
$aTab array (1> array ('test', 'pour', 'une', 'blonde'),
  2 => array ('difficile', 'ca?', 'non...'),
  3 => array ('très', 'facile', 'en', 'fait!'));

en fait je vois pas comment integrer mon prog dans le tien :/
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Teclis01 Messages postés 1423 Date d'inscription mardi 14 décembre 2004 Statut Membre Dernière intervention 29 décembre 2012 4
7 juin 2006 à 10:25
il suffit de mettre un attribut id a ton select ensuite tt devient plus simple:
on a ceci
<select id=id_select name=mon_select>
donc on utilise ceci :
document.getElementById('id_select')

--------------------------------------------------------------------------------------------------
         Ilvaut mieux poser une question et passer pour bête que le rester toutesa vie
0
lorgard Messages postés 56 Date d'inscription vendredi 26 avril 2002 Statut Membre Dernière intervention 22 juillet 2009
7 juin 2006 à 10:31
replop

voici mon code de base

  <?php
$db = mysql_connect('localhost','root','') or die ("erreur de connexion");
//on selectionne votre base
mysql_select_db('mysql',$db) or die ("erreur de base");


$rslt = mysql_query("SELECT id,date,prenom,email from test_tbl;") or die ("erreur sql ".mysql_error()); // on sélectionne les colonnes id,date,prenom,email de la table test_tbl


// Etape n°3 : Initialisation et lecture des lignes
$nb = mysql_num_rows( $rslt );
?>
<html>

<select>
 <option value="">Choisir id</option>
<?php while ($row = mysql_fetch_assoc($rslt))
{echo "<option>".$row['id']."</option>";}
?>
</select>

</html>

si je transforme la creation de la liste par ceci

while ($row = mysql_fetch_assoc($rslt))
{$tab[$nb]=$row['prenom];}

ca peut fonctionner?

pour mettre les info dans un tableau pour pouvoir l'utiliser directement apres

petite explication

j'ai une liste de 140 appli et une de180 serveur avec sur chacun logiciels installé dessus

je voudrais que lorsque tu choisi une appli dans la liste , les serveurs pouvant la supporter s'affichent automatiquement et que les logiciels installés sur ces serveur s'affichent eux aussi , automatiquement. 

voila le but de mes manoeuvres :)
  
0
lorgard Messages postés 56 Date d'inscription vendredi 26 avril 2002 Statut Membre Dernière intervention 22 juillet 2009
7 juin 2006 à 10:49
La table

serv1 appli1 appli2 appli3
serv2 appli1 appli9 appli7
serv3 appli6 appli1 appli2

en gros voila ce que donne la table ^^

donc ce que j'ai la liste appli , ca c'est fait :)

j'aimerais que si l'utilisateur choisi appli 1  juste a coté il y ai marqué les servuer la supportant donc serv1 2 et 3

donc en selectionant l'appli je vais chercher les données, les met dans un tableau , et les affcihes.

donc plutot de que lier le tout comme ca

je peux pas plutot faire un for jusqu'a trouver l'appli séléctionné
puis faire le bon select et afficher le tout?

le seul probleme c'est que j'arrive pas a trouver le moyen de le faire automatiquement

je sais aller chercher les données dans lla bdd, bon faut que je trouve le moyen de les metre dans le tableau mais ca , ca doit etre expliqué quelque part et ca doit pas trop etre dur, le plus gros probleme c'est d'automatiser le tout :/
0
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
7 juin 2006 à 10:51
Ben oui c le même principe en fait, très exactement.
sur ton sekect, tu mets un onchange, qui va soumettre le formulaire au choix fait dans la liste.
Sur ce submit, tu vérifies donc que ta liste est bien postée avec une valeur. Si c'est le cas, tu fais ta requête en fonction du choix, et tu affiches le résultat de la requête.
Bref, mon tableau, c'est juste pour simuler une requête.
0
lorgard Messages postés 56 Date d'inscription vendredi 26 avril 2002 Statut Membre Dernière intervention 22 juillet 2009
7 juin 2006 à 11:10
re

pourrais tu m'explique ca stp

foreach ($aTab as $clef => $dump) {
$selected=(isset($_POST['liste1']) && $_POST['liste1'] == $clef)?'selected="selected"':'';
echo '<option value="',$clef,'" ',$selected,'>',$clef,'</option>';
}

le fonctionnement de $clef et $dump

que je puisse l'utiliser correctement ^^

je suis en train de modifier mon code, j'en suis la

<?php$aTab array (1> array ('test', 'pour', 'une', 'blonde'),
  2 => array ('difficile', 'ca?', 'non...'),
  3 => array ('très', 'facile', 'en', 'fait!'));
?>
<?php
$db = mysql_connect('localhost','root','') or die ("erreur de connexion");
//on selectionne votre base
mysql_select_db('mysql',$db) or die ("erreur de base");


$rslt = mysql_query("SELECT id,date,prenom,email from test_tbl;") or die ("erreur sql ".mysql_error()); // on sélectionne les colonnes id,date,prenom,email de la table test_tbl


// Etape n°3 : Initialisation et lecture des lignes
$nb = mysql_num_rows( $rslt );
?>


 


<html>


<form method="post" id="mainForm">
<select id=id_select name=id onchange="document.getElementById('mainForm').submit();>


<?php
while ($row = mysql_fetch_assoc($rslt))
{echo "<option>".$row['id']."</option>";}
?>
</select>
<?php
foreach ($aTab as $clef => $dump) {
$selected=(isset($_POST['liste1']) && $_POST['liste1'] == $clef)?'selected="selected"':'';
echo '<option value="',$clef,'" ',$selected,'>',$clef,'</option>';
}
?>

</html>

ca m'affiche une liste avec 2 et 3 comme choix

je suis perdu ... :/

je cherche le code le plus simple pour dire si "$var" choisi afficher "$var"

jme suis completement embrouillé

help plz
0
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
7 juin 2006 à 12:25
Quand tu soumets un formulaire, tu récupères ses valeurs dans $_POST (ou $_GET).
Donc si ton select s'appelle nomSelect, tu récupères le choix utilisateur dans :
$_POST['nomSelect']

Ok ?

Sur ta page, comme je le fais avec mes listes liées, il te suffit de tester si $_POST['nomSelect'] existe et est bien un entiern, par exemple. Si oui (if...), tu effectues ta requête avec cette valeur :
SELECT ... FROM ... WHERE id = $_POST['nomSelect']
0
lorgard Messages postés 56 Date d'inscription vendredi 26 avril 2002 Statut Membre Dernière intervention 22 juillet 2009
7 juin 2006 à 13:44
merci bcp , je vais tester ca , dsl pour le double post
0
lorgard Messages postés 56 Date d'inscription vendredi 26 avril 2002 Statut Membre Dernière intervention 22 juillet 2009
7 juin 2006 à 14:11
replop, j'ai tésté ^^

a premiere vue je suis sur la bonne voie grace a toi ^^

il me reste cependant un petit blem ^^

je te passe mon code

<?php
$db = mysql_connect('localhost','root','') or die ("erreur de connexion");
//on selectionne votre base
mysql_select_db('mysql',$db) or die ("erreur de base");


$rslt = mysql_query("SELECT id,date,prenom,email from test_tbl;") or die ("erreur sql ".mysql_error()); // on sélectionne les colonnes id,date,prenom,email de la table test_tbl


// Etape n°3 : Initialisation et lecture des lignes
$nb = mysql_num_rows( $rslt );




<html>


<form method="post" id="mainForm">
<select id=id_select name=id onchange="document.getElementById('mainForm').submit();>


<?php
while ($row = mysql_fetch_assoc($rslt))
{echo "<option>".$row['id']."</option>";}


?>
</select>




<?php
$_POST['id'];
$rslt2= mysql_query("SELECT * FROM test_tbl WHERE id=$_POST['id'];") or die ("erreur sql 2".mysql_error());


if(($a>0)&&($a<999))
{
 while ($row = mysql_fetch_assoc($rslt2))
 {$tab2[]=$row['prenom'];}


 for($k=0;$k<=3;$k++)
{
 echo ($tab[$k]);
 print ("
");
}
}
?>
</form>

</html>

quand j'execute ca il me dit

Parse error : parse error, expecting `T_STRING' or `T_VARIABLE' or `T_NUM_STRING' in c:\program files\easyphp1-8\www\test\test2.php on line 40

la ligne 40 correspond a

$rslt2 = mysql_query("SELECT * FROM test_tbl WHERE id= $_POST['id'];") or die ("erreur sql 2".mysql_error());

la 2eme chose essayé est de mettre ca dans une variable donc

$a=$_POST['id']

et

$rslt2= mysql_query("SELECT * FROM test_tbl WHERE id=$a;")or die ("erreur sql 2".mysql_error());

la il me repond


<form id="mainForm" method="post"><select id=id_select name=id onchange="document.getElementById('mainForm').submit();> <option>1</option><option>2</option><option>3</option><option>4</option>
Notice : Undefined index: id in c:\program files\easyphp1-8\www\test\test2.php on line 32
erreur sql 2Erreur de syntaxe près de '' à la ligne 1</form>la ligne 32 correspond a $a =$_POST['id'];

il veut pas le prendre en compte ?

ou se situe mon erreur?

j'ai mit tout le code car comme je sais pas d'ou vien le probleme c'est plus facile pour vous de vous reperer ^^

merci encore de votre aide ^^ :)
0
lorgard Messages postés 56 Date d'inscription vendredi 26 avril 2002 Statut Membre Dernière intervention 22 juillet 2009
7 juin 2006 à 14:38
changement d'un petit bout de code  :

<?php
while ($row = mysql_fetch_assoc($rslt))
{echo "<option>".$row['id']."</option>";}
$a=$_POST['id'];   <===== je l'ai placé ici
?>
</select>




<?php


$rslt2= mysql_query("SELECT * FROM test_tbl WHERE id=1;") or die ("erreur sql 2".mysql_error());                                                         ^
                                                                                     |
le ja vois ma liste deroulante mais si je met            where id=$a ,        ca bug toujours.

il veut pas recconaitre la variable ^^

ce serais pas a cause du onchange() qui n'est pas valide? comme il n'y a pas de changement ,  il n'y pas de variable non ?

aidez moi sur le onchange svpj'ai essayé de tester via les exemples mais ca ne fonctionne pas :/
0
lorgard Messages postés 56 Date d'inscription vendredi 26 avril 2002 Statut Membre Dernière intervention 22 juillet 2009
7 juin 2006 à 14:46
quand je met un boutton submit tout fonctionne a part que j'affiche pas les bon elements, mais ca je sais pourquoi ^^
 donc ca vien bien du onchange () :)
0
lorgard Messages postés 56 Date d'inscription vendredi 26 avril 2002 Statut Membre Dernière intervention 22 juillet 2009
7 juin 2006 à 14:51
autant pour moi, si ca marche c'est que j'ai defini un di fixe dans mon select, il n'arrive pas a prendre en compte la relation
0
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
8 juin 2006 à 07:06
<select id=id_select name=id onchange="document.getElementById('mainForm').submit();>

t'as oublié de fermer les guillemets...
0
Rejoignez-nous