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

Javascript / DHTML / Ajax

 > 

CSS

 > 

Général

 > 

Rafraichir la page via choix dans liste


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

Rafraichir la page via choix dans liste

mardi 14 août 2007 à 11:28:12 | Rafraichir la page via choix dans liste

pasdie

Bonjour à tous,

Voilà mon problème :
J'ai une page PHP contenant deux listes.
Ma première liste est remplie via une requete sur mon serveur (je possède EasyPHP).
Au clique sur une valeur de la liste, je veux mettre à jour ma seconde liste.
Pour effectuer cela, j'utilise le code suivant :

test1.php
------------------------------------------
<html>

<head>
<META http-equiv="Content-Type" content="text/html; charset=iso-8859-1">

<script language="JavaScript" type="text/javascript">

function requestmenu(f)
{
    var l1    = f.elements["list1"]; //Prendre de la liste des briques
    var l2    = f.elements["list2"]; //Prendre la liste des lignes de produit

    var index = l1.selectedIndex; // Prendre la valeur sélectionnée dans la liste des briques



    if(index < 1)
        l2.options.length = 0;
    else {
        var xhr_object = null;
       
    if(window.XMLHttpRequest) // Sous Firefox
        xhr_object = new XMLHttpRequest();

   else if(window.ActiveXObject) //Sous Internet Explorer
      xhr_object = new ActiveXObject("Microsoft.XMLHTTP");

   else { // XMLHttpRequest non supporté par le navigateur
      alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest...");
      return;
   }

   xhr_object.open("POST", "test1.php", true);

   xhr_object.onreadystatechange = function anonymous() {

      if(xhr_object.readyState == 4)
         eval(xhr_object.responseText);

    }

   xhr_object.setRequestHeader("Content-type", "application/x-www-form-urlencoded");  

   var data = "brique="+escape(l1.options[index].value)+"&form="+f.name+"&select=list2";  

   xhr_object.send(data);  

   }

}

</script>

</head>

<?php
include ("commun/connexion.inc.php"); // Ouvrir une connexion à la BD

echo" <script language=\"javascript\"> \n";
$query = "SELECT `DOM_VENTE` FROM `ligne_produits` WHERE `BRIQUE` = '".$_POST["brique"]."'";
$query .= " ORDER BY `DOM_VENTE`";
$result = mysql_query($query) or die('Erreur SQL !<br>'.$query.'<br>'.mysql_error());

echo 'var o = null;';
echo 'var s = document.forms["'.$_POST["form"].'"].elements["'.$_POST["select"].'"];';
echo 's.options.length = 0;';

while($r = mysql_fetch_array($result))
echo 's.options[s.options.length] = new Option("'.$r["DOM_VENTE"].'");';
               
echo "</script>\n";
?>


<body>

<form class="CenteredForm" name="form_selects" id="form_selects" action="" method="" onsubmit="return false;">

<fieldset>

<legend>Faites un choix dans la liste de gauche<br />et observez le résultat dans celle de droite</legend>

<div class="Left">

            <?php
        //On sélectionne toutes les lignes de produit
        $sql="SELECT DISTINCT (BRIQUE)
              FROM ligne_produits
              ORDER BY DOM_VENTE ASC";
        //On exécute la requete     
        $req= mysql_query($sql);
       
        //on créer une liste de lignes de produit
        echo '<select name="list1" id="list1" onchange="requestmenu(this.form)">
              <option value="" selected="selected">-*- BRIQUES -*-</option>';
        while($row = mysql_fetch_array($req))
            {
                echo '<option value="'.$row['BRIQUE'].'">'.$row['BRIQUE'].'</option>';
            }
        echo '</select><br/><br/>';
            ?>

<select name="list2" id="list2" class="ButtonL">

<option value="" selected="selected">-*- LIGNES DE PRODUIT -*-</option>

</select>

</div></fieldset></form>

</body>

</html>
------------------------------------------

Sous FF (v1.5.0.7) : rien ne se passe quand je clique sur un choix.
Sous Ie (v 6.0) :j'obtiens un message "syntax error" au niveau de ma fonction eval( ... ).

Ma question : Pouvez vous m'aider à comprendre pourquoi la fonction eval me pose problème ?

Note : La connexion à la BD et l'affichage de la première liste se fait correctement mais j'ai l'impression que je rentre correctement dans la fonction requestmenu(f) uniquement quand je choisi la premiere valeur de ma list1, soit la valeur déjà mise en selected.

Je vous remercie d'avance et j'espère que vous pourrez me venir en aide.
mardi 14 août 2007 à 12:11:30 | Re : Rafraichir la page via choix dans liste

bultez

Membre Club




Bonjour,

lu chez SelfHTML,

eval()
Interprète un argument à transmettre et renvoie le résultat.
Si l'argument transmis peut être interprété comme une opération de calcul,
l'opération est effectuée et son résultat est retourné.
Cette méthode permet aussi des opérations de calcul complexes avec expressions entre parenthèses.
Cette fonctionnalité est très pratique pour, avec une seule commande, faire calculer des opérations
 notées en tant que chaînes de caractères.
Si l'argument transmis peut être interprété en tant qu'objet ou propriété d'objet, l'objet ou la propriété
 d'objet est retournée.
Ce qui est important quand une chaîne de caractères (par exemple le contenu d'un champ de formulaire
 ou le paramètre transmis à une fonction) doit être interprété en tant qu'objet.
Provoque un message d'erreur si l'expression transmise ne peut être interprétée.

on ne peut donc pas faire eval ici sur une réponse  de php.

c'est l'histoire des select liés.
de mémoire d'Alzheimer, il y a un exemple en php ici :
    http://www.codyx.org/snippet_listes-deroulantes-liees_89.aspx
sinon :
http://marcel-bultez.chez-alice.fr/documents/PHP/PHP.php 
    rechercher
    "Select qui dépend d'un autre ", c'est un exemple.



Cordialement                Bul         [mon Site]     [M'écrire]

Généralement, c'est absurde de généraliser.
mardi 14 août 2007 à 12:27:35 | Re : Rafraichir la page via choix dans liste

bultez

Membre Club
Réponse acceptée !
il est vrai que mon exemple n'est pas avec ajax, mais au fond,
    ça ne change pas grand chose.
    la réponse du php sera affichée ou gérée par le  javascript.

Cordialement                Bul         [mon Site]     [M'écrire]

En généralement, c'est totalement absurde de généraliser.
mardi 14 août 2007 à 13:58:50 | Re : Rafraichir la page via choix dans liste

pasdie

Merci beaucoup! Vous êtes bien la première personne qui a pu me renseigner complètement ! Mais vous savez, c'est bizare que l'eval ne puisse pas fonctionner, enfin dans ce cas là oui...je suis d'accord, mais sur un tuto javascript, le code source était réalisé de cette manière et on traitait des noms...Cependant dans le forum accolé au tuto tout le monde se plaignait qu'eval() ne marchait pas !

En tout cas je vous remercie et les URL fournient je pense, pourront m'être d'une grande aide :)

Bonne journée à vous.
mardi 14 août 2007 à 14:12:24 | Re : Rafraichir la page via choix dans liste

bultez

Membre Club
si ça ne convient pas, il devrait me falloir quelques minutes  ;-))
pour adapter mon exemple, mais pas de raisons...

Cordialement                Bul         [mon Site]     [M'écrire]

En général, c'est totalement absurde de généraliser.


Cette discussion est classée dans : liste, var, echo, xhr, object


Répondre à ce message

Sujets en rapport avec ce message

Erreur systeme [ par goulouk ] Bonjour, j'utilise ajax et ca arrive que j'ai l'erreur :Erreur Sytème : -1072896748Cette erreur ce fait quand je clic sur un lien comme celui-ci :<a h Paramètres [ par piep14 ] Bonjour, je cherche en vain depuis hier a passer mes variables hors d'une fonction meme en la déclarant en global et ca ne passe pas ->undefined <img intérompre une fonction... [ par davidcian ] Bonjour,Je cherche a stopper le déroulement d'une fonction lors d'une condition, j'ai testé avec return mais ça marche pas...Fonction principal:functi Envois formulaire XMLHttpRequest POST BDD [ par Annadrill ] bonjour,alors voilà, cela fait trois jours que je tourne en rond avec un problème qui à l'air idiot mais que je n'arrive à résoudre.je m'explique, j'a créer des lien en ajax [ par baloc ] bonjour à tous.Je souhaite réaliser des liens en ajax. ça c'est la partie simple théorique. maisntenant l'autre partie. les liens sont des éléments d' Liste liée - Formulaire [ par onylink ] Bonjour, J'essai de liées des listes dans un formulaire, mais après mon choix rien ne se passe.. Mais je n'ai pas d'erreur.. Page appelante :<pre clas problème avec eval sur une reponse ajax [ par everalex1 ] voila je demande a un script php par de l ajax daller chercher une page dun site,je taille le code reçu avec des fonctions pour obtenir que se qui min jquery et ajax formulaires [ par Annadrill ] bonsoir, j'aimerais savoir comment je dois m'y prendre pour recréer un script du type de celui ci-dessous pour jquery, le systeme étant que les cha Pb avec xhr_object.open et IE [ par Degom95 ] Bonjour, Je gère un site de club et j'ai essayé de mettre à jour un DIV avec un fichier externe, après pas mal de recherche sur Codes-Sources, j'ai vu parser un xml [ par zeitoun69 ] Bonjour je dois parser un fichier xml et former un tableau a partir des données extraite j'ai réussi a former le tableau mais les données sont celles


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

Photothèque

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 : 3,526 sec (3)

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