Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

rafraichissement dynamique de composants

4 réponses
Avatar
Fab
Je souhaite rafraichir des composants dans une page ss rafraichir la page
entiere. Est ce que c faisable? Exemple:

j'ai deux combo box
La premiere a une liste de valeur possible issue de ma base mysql
Suivant le choix de la premiere, je voudrai envoyer une requete a la base et
retourner les valeurs dans la deuxieme combo ss rafraichir la page entiere.
Est ce POssible???

Merci

4 réponses

Avatar
foodbyfood
"Fab" wrote in message news:<3f7d7a43$0$2776$...
Je souhaite rafraichir des composants dans une page ss rafraichir la page
entiere. Est ce que c faisable? Exemple:

j'ai deux combo box
La premiere a une liste de valeur possible issue de ma base mysql
Suivant le choix de la premiere, je voudrai envoyer une requete a la base et
retourner les valeurs dans la deuxieme combo ss rafraichir la page entiere.
Est ce POssible???

Merci


utilise un iframe pour ta 2eme liste

Avatar
kMoog
"Fab" a écrit dans le message de news:
3f7d7a43$0$2776$
Je souhaite rafraichir des composants dans une page ss rafraichir la page
entiere. Est ce que c faisable? Exemple:

j'ai deux combo box
La premiere a une liste de valeur possible issue de ma base mysql
Suivant le choix de la premiere, je voudrai envoyer une requete a la base
et

retourner les valeurs dans la deuxieme combo ss rafraichir la page
entiere.

Est ce POssible???

Merci


Oui avec du JavaScript mais pas avec PHP.

Avatar
Christophe MERESSE
j'ai deux combo box
La premiere a une liste de valeur possible issue de ma base mysql
Suivant le choix de la premiere, je voudrai envoyer une requete a la base
et

retourner les valeurs dans la deuxieme combo ss rafraichir la page
entiere.

Est ce POssible???


Pas de cette maniere, une fois que la page est sur ton browser il n'y a plus
de php (il a été interpreté par le serveur en amont).
Ce qu'il faut donc faire c'est du javascript qui, lui ,peut encore rendre ta
page "dynamique" sur le client.
Envoie donc en php des requetes pour recuperer toutes les valeurs possibles
de la premiere combo box ainsi que de la deuxieme
en fonction de la premiere. Et genere dans ta page une fonction en
javascript qui te fait rafraichir le deuxieme combo en fonction du premier.
Enfin tu fais appeler cette fonction toujours avec du java script généré par
ton php (un onclick sur le premier combo)

Allez, je me sens en forme alors voici la pratique... :)

Admettons que le combo 1 contienne 2 options qui ont pour value 0 et 1 (Je
parle bien de la "value" de l'option, pas du texte affiché)

Les deux table dans ta base:
combo1:
value, title
combo2:
value,title,valuecombo1

Le but c'est d'obtenir ca dans le contenu de ta page html:

<script type="text/javascript">
function updateCombo2(theCombo1,theCombo2)
{
if (theCombo1.value==0)
{
theCombo2.options.length=2;
theCombo2.options[0].value=0;
theCombo2.options[0].text="Option0_0";
theCombo2.options[1].value=1;
theCombo2.options[1].text="Option0_1";
theCombo2.options[0].selected=true;
}
if (theCombo1.value==1)
{
theCombo2.options.length=3;
theCombo2.options[0].value=3;
theCombo2.options[0].text="Option1_0";
theCombo2.options[1].value=4;
theCombo2.options[1].text="Option1_1";
theCombo2.options[2].value=5;
theCombo2.options[2].text="Option1_2";
theCombo2.options[0].selected=true;
}
}
</script>


<select name="combo1" onchange='javascript:updateCombo2(combo1,combo2);'>
<option value="0">Option0</option>
<option value="1">Option1</option>
</select>

Mais tout ca doit bien sur etre généré par le php (Pour la partie du select,
je pense que ca ne te pose pas de probleme)
Pour la partie du javascript::

<script type="text/javascript">
function updateCombo2(theCombo1,theCombo2)
{
<?
$sql = "SELECT value, title FROM combo1";
$res = mysql_query($sql) or mysql_die(__FILE__,__LINE__,$sql);
while ($row=mysql_fetch_array($res))
{
$value = $row[VALUE];
echo " if (theCombo1.value==$value)n";
echo " {n";
$nb_option=0;
$sql = "SELECT value, title FROM combo2 WHERE valuecombo1='$value'";
$res2 = mysql_query($sql) or mysql_die(__FILE__,__LINE__,$sql);
while ($row2=mysql_fetch_array($res2))
{
echo " theCombo2.options[$nb_option].value=$row2[VALUE];n";
echo "
theCombo2.options[$nb_option].text="".$row2[TITLE]."";n";
$nb_option++;
}
}
echo " theCombo2.options.length=$nb_option;n";
echo " theCombo2.options[0].selected=true;n";
echo " }n";
}
echo "}n";
echo "</script>n";


Voila, j'espere que ca pourra t'aider. Le code provient d'un de mes projet
mais je l'ai
modifié pour le rendre un peu didactique (enfin j'espere :) )
Il n'a pas été testé apres ces modifications mais l'idée devrait y être.
Le SELECT à l'interieur ne la boucle n'est pas une tres bonne solution, on
pourrait certainement
s'arranger pour en faire un seul en dehors et tout mettre dans un tableau
que l'on parcourrerait ensuite
dans la boucle.

Voila, les commentaires sur ma facon de faire sont les bienvenus. :)

A+
Christophe

Avatar
Laurent Seguin
"Fab" , le 04 oct. 2003 02:48:31, écrivait ceci:

j'ai deux combo box
La premiere a une liste de valeur possible issue de ma base mysql
Suivant le choix de la premiere, je voudrai envoyer une requete a la
base et retourner les valeurs dans la deuxieme combo ss rafraichir la
page entiere. Est ce POssible???


Ben non... Tu envois et reçois comment le flux sans requête http ?
Bon il y a l'astuce de l'iframe ou de l'object mais ce n'est franchement
pas pratique et donne plus de soucis que rend de service.