begin process at 2012 05 30 22:40:00
  Trouver un code source :
 
dans
 
Accueil > Forum > 

PHP

 > 

Base de données

 > 

MySQL

 > 

onchange() dans un <select> sans submit


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

onchange() dans un <select> sans submit

mercredi 24 mai 2006 à 12:02:10 | onchange() dans un <select> sans submit

tkz

Bonjour, voici mon probleme:
J'ai un formulaire contenant plusieurs input et 2 select qui remplit une base de donnees.
Je souhaiterais que lors de la selection d'un element dans le 1er select, le 2eme select se modifie automatiquement. Je pense que c'est bien un <select onchange=()> qu'il faut mais je ne veux pas que tout le formulaire soit sumit lors du onchange. Je debute en php et je ne connais rien en javascript.

voici une partie de enreg.php:
<?
include("fonctions.php");
....
$result2=requete('select * from rayon order by rayon asc');
$result3=requete('select * from vendeur order by vendeur asc');//ici on aurait une clause where en plus
...
select($result2, "data13", "id_rayon", "rayon"); //ici le select on je pense onchange()
select($result3, "data14", "id_vendeur", "vendeur"); //ici le select qui doit etre modifié
valider("Enregistrer");
.....
?>

fonctions.php:
<?
//menus deroulants
function select($resultat, $name, $id, $attrib)
{
    echo"<td><select name='$name'><option></option>";               
while ($ligne=mySQL_FETCH_OBJECT($resultat))
    {
            echo "<option value=".$ligne->$id.">".$ligne->$attrib."</option>";
  }   
}
//bouton submit
function valider($valid)
{
    echo "<td align=right><input type='submit' value='$valid'></td>";
}

J'espere que tout est bien clair, et que vous pourrez m'aider !! Merci....
mercredi 24 mai 2006 à 12:09:45 | Re : onchange() dans un <select> sans submit

malalam

Administrateur CodeS-SourceS
Hello,

tu dois soumettre tout le formulaire.
Le truc, cx'est de détecter par quel biais le formulaire a été soumis.
Si c'est par le bouton sublit, tu fais ton traitement normal.
Sinon, c'est par le onchange, et tu vérifies donc la valeur du $_POST du select pourcharger le second select en conséquence.

http://www.codyx.org/snippet_listes-deroulantes-liees_89.aspx#229
mercredi 24 mai 2006 à 12:42:56 | Re : onchange() dans un <select> sans submit

tkz

Merci beaucoup pour ton aide qui confirme bien ce dont j'avais peur:)
Je m'y met de suite !!
mercredi 24 mai 2006 à 13:09:43 | Re : onchange() dans un <select> sans submit

huberdine

je pense que ceci devrait te plaire :
[ Lien ]
C'est de l'AJAX; il n'y a pas besoin de poster le formulaire pour mettre à jour ton 2° select en fonction de ce qui est sélectionné dans ton 1°.

huberdine, mais dort aussi ...
mercredi 24 mai 2006 à 13:13:22 | Re : onchange() dans un <select> sans submit

malalam

Administrateur CodeS-SourceS
C'est aussi dans mon exemple sur Codyx, c'est pour ça que j'ai pas précisé :-)
ceci dit, ça ne change pas gd chose, qu'on soumette ou pas, on repasse quand même par le serveur hein...
mercredi 24 mai 2006 à 13:19:22 | Re : onchange() dans un <select> sans submit

huberdine

Vi autant pour moi, j'ai pas suivi ton lien ...
mais rien ne vaut un exemple !
Certes, dans les deux cas, on repasse par le serveur, mais la version avec HTTPRequest sera peut-être plus rapide : il y a moins de transferts entre le client et le serveur non ?

huberdine, mais dort aussi ...
mercredi 24 mai 2006 à 13:55:10 | Re : onchange() dans un <select> sans submit

malalam

Administrateur CodeS-SourceS
Mouais, sauf que javascript, utilisé en masse dans ces requêtes, c'est lent et lourd à interpréter (c'est pas une critique de javascript hein). Donc...ça se discute...
vendredi 26 mai 2006 à 11:17:11 | Re : onchange() dans un <select> sans submit

tkz

Merci encore pour vos reponses...
Voila, en fouillant un peu partout , voila ce que j'ai reussi a faire :

<?
include("fonctions.php");
?>
  <head><script language="JavaScript">
   function recharger(i, type_produit_id)
   { 
     location.href = "test.php?i=" + i + "&debut=" + 0 + "&type_produit_id=" + type_produit_id;
   }
<?
echo "</script></head>";
$result2=requete('select * from ba order by ba asc');
?>
<select size="1" name="type_produit_id" onchange="recharger(1,this.options[this.selectedIndex].value)" >
<?
while ($row2 = mysql_fetch_object($result2) )
{
    $ba = $row2->ba;
echo"    <option value=".$row2->ba.">".$row2->ba."</option>";
}
echo "</select>";
if (!empty ($_GET))
{
    extract ($_GET);
    if ($i ==1)
    {
        echo "<select size='1'>";
        $result3=requete('select vendeur from vendeur,ba where vendeur.ba_id=ba.id_ba and ba like "'.$type_produit_id.'" order by vendeur asc;');
        while ($row3 = mysql_fetch_object($result3))
                    {
                                $type_produit_libele = $row3->vendeur;
                                echo "<option value=".$row3->vendeur.">".$row3->vendeur."</option>";
                    }
                                echo "</select>";
    }
}

?>

Ma table ba est constituee de " id_ba et ba" et ma table vendeur constituee de "id_vend, vendeur, ba_id".
Le premier probleme est que lorsque je choisi un ba dans la liste, les vendeurs correspondants s'affchent bien, mais le menu de choix ne reste pas sur le ba choisi, il revient toujours sur le selected...d'ou mon deuxieme probleme :
a la premiere ouverture de la page, le select affiche le 1er ba, du coup, on n'arrive pas a lancer le onchange sur celui ci.
G reussi a modifier ce code trouvé tant que j'ai pu , la je coince mechant :p
vendredi 26 mai 2006 à 11:23:23 | Re : onchange() dans un <select> sans submit

malalam

Administrateur CodeS-SourceS
Hello,

il suffit de modifier tes listes en ajoutant une option "vide" en début de liste. Ainsi, tes utilisateurs pourront choisir la 1ère vraie option qui déclenchera aussi le onchange.
Pour conserver la valeur sélectionnée, tu n'as pas correctement repris mon code : cette fonctionnalité y est. Il faut tester si un $_POST de ton/tes select existe, et comparer sa valeur (s'il existe) avec tes options...et mettre un attribut selected="selected" sur l'option dont la valeur correspond à celle du $_POST.

vendredi 26 mai 2006 à 22:24:56 | Re : onchange() dans un <select> sans submit

tkz

Re !

Je veux bien que tu m'expliques ceci :
foreach ($aTab as $clef => $dump) {
 $selected=(isset($_POST['liste1']) && $_POST['liste1'] == $clef)?'selected="selected"':'';
 echo '<option value="',$clef,'" ',$selected,'>',$clef,'</option>';
}

A koi va correspondre $clef et $dump ? J'ai changé l'option qui manquait, now c nickel mais toujours ce probleme de selected.
 Maintenant, il me garde toujours le dernier de la liste:/



1 2

Cette discussion est classée dans : php, select, rayon, onchange, vendeur


Répondre à ce message

Sujets en rapport avec ce message

probleme de select et onchange [ par plopinou ] Bonjour, voici mon probleme : je veux faire un onChange sur mon slect, des qu'on le modifie, je recharge ma page, voila, pour le moment, quand j'ai pl [Problème] Mysql & Select ... not in ... [ par shanicot ] Salut, J'essaie de faire fonctionner cette requête sql sur un serveur qui ne prends pas en compte la subrequête après le NOT IN : select *         Select box + php + ajax [ par geek1983 ] Bonjour, j'ai une petite question.J'utilise php/mysql pour populer un select box de ce type:    client 1    client 2    & variable [ par cobra176 ] j'ai un soucis pour une variable bien précisema requete est bonne mais mon code php me fait des misiére    $connect=mysql_connect("127.0.0.1", "root", php formulaire [ par fatatra ] Bonjour,j'essaie de mettre deux zones de saisies dans une de mes pages php. C'est a dire a l'accueil,le visiteur peut soit se logger soit s'inscrire a Warning avec header => soucis site web avec PHP [ par Shikapowa ] Mesdames Mesdemoiselles Messieurs bonjour,Shikapowa toujours en soucis mdraprès avoir rectifié une dizaine de pages, nouvel embêtement:session_start() des IF dans SELECT ? [ par rocknroll2 ] Bonsoir à tousPetit problème de SELECT dans lequel je voudrais mettre des conditions... si c'est possible.J'ai 30 variables définies par des boutons r erreur php [ par MisterRack ] Bonjour à tous ! J'ai un petit problème... Voila en fait j'ai créé un fichier config.ini dans lequel j'ai inscrit la variable suivante : $body = " besoin d'aide : formulaire, php javascript [ par tkz ] Bonsoir, apres un bon moment a me casser la tete sur ce probleme, je m'en remets a vous... Voila le probleme : j'ai cree un formulaire qui enregistre javascript/php et formulaire [ par dezossor ] Bonjours,Je développe actuellement une application web pour ma boite et je me trouve face à un petit problème. La réponse est certainement très simple


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,593 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales