begin process at 2012 05 29 08:06:40
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Javascript / DHTML / Ajax

 > 

Javascript et ActiveX

 > 

Autre

 > 

deux listes liées


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

deux listes liées

samedi 6 juin 2009 à 14:00:16 | deux listes liées

devmouad

Bonjour,
je veux crée deux liste liées j'utilise un code ajax que j'ai trouvé dans un forum,mais j'arrive pas a le faire fonctioner,
voici les deux listes dans le formulaire
<tr>
<td width="230">famille:
<select name="typeproduit" id="typeproduit" onchange='go()'>
<?php

$rs=mysql_query("SELECT DISTINCT desg from typeproduit");
while($ligne=mysql_fetch_array($rs)){
echo"<option>".$ligne['desg']."</option>";

}


?>
</select></td>
<td width="233">produit:
<div id='produit' style='display:inline'>

</div></td>


voici le script

<script type='text/javascript'>

function getXhr(){
var xhr = null;
if(window.XMLHttpRequest) // Firefox et autres
xhr = new XMLHttpRequest();
else if(window.ActiveXObject){ // Internet Explorer
try {
xhr = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
xhr = new ActiveXObject("Microsoft.XMLHTTP");
}
}
else { // XMLHttpRequest non supporté par le navigateur
alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest...");
xhr = false;
}
return xhr;
}

/**
* Méthode qui sera appelée sur le click du bouton
*/
function go(){
var xhr = getXhr();
// On défini ce qu'on va faire quand on aura la réponse
xhr.onreadystatechange = function(){
// On ne fait quelque chose que si on a tout reçu et que le serveur est ok
if(xhr.readyState == 4 && xhr.status == 200){
leselect = xhr.responseText;
// On se sert de innerHTML pour rajouter les options a la liste
document.getElementById('produit').innerHTML = leselect;
}
}

// Ici on va voir comment faire du post
xhr.open("POST","ajaxproduit.php",true);
// ne pas oublier ça pour le post
xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
// ne pas oublier de poster les arguments
// ici, l'id de l'auteur
sel = document.getElementById('typeproduit');
codeTypeP = sel.options[sel.selectedIndex].value;
xhr.send("codeTypeP="+codeTypeP);
}
</script>

voici le fichier de réponse

<?php
echo'<select name="produit" id="produit">';

if(isset($_POST["codeTypeP"])){
$connection = mysql_connect("localhost", "root", "") or die(mysql_error());
mysql_select_db("sbd_gestion_commerciale") or die(mysql_error());

$rs=mysql_query("SELECT DISTINCT nom from produit where codeTypeP='".$_POST["codeTypeP"]."'");
while($ligne=mysql_fetch_array($rs)){
echo"<option>".$ligne['nom']."</option>";

}
}


echo'</select>'.'</td>';
?>

merci d'avance
samedi 6 juin 2009 à 14:26:53 | Re : deux listes liées

Bul3

Membre Club


Bonjour,

ben déjà, il me semble  qu'il y a plusieurs id="produit" non ?
<div id='produit' style='display:inline'>
echo'<select name="produit" id="produit">';
      [ sans parler des name, pour IE c'est pareil ! ]

ensuite, il faut mieux cerner ton problème !
dans la réponse du php ?
fais des alert, du pas à pas...

des exemples de select liés ( ajax ou pas ) qui fonctionnent,
il y en a des masses
le mien ( si on peut dire, car c'est toujours pareil en fait )

Cordialement [mon Site] [M'écrire] Bul
samedi 6 juin 2009 à 14:36:21 | Re : deux listes liées

Bul3

Membre Club
en plus tu dois avoir des errurs "html" !
tu es déjà dans  un td, pourquoie en rajouter
dans la réponse du serveur ?
par exemple : echo'</select>'.'</td>';
samedi 6 juin 2009 à 15:11:48 | Re : deux listes liées

devmouad

tout d'abord bul3 merci pour ta réponse
j'ai utilisé ton code mais malheureusement ma deuxième liste est encore vide
 voici le code que j'utilise

<head>
<script type="text/javascript">
function xmlhttp()
{ var x;
try {
 x = new ActiveXObject("Microsoft.XMLHTTP"); }
 catch (e)
 { try
 { x = new ActiveXObject("Msxml2.XMLHTTP"); }
 catch (e) { try { x = new XMLHttpRequest(); } catch (e) { x=false; } } } return x; } function appel() { var xml = xmlhttp(); if(!xml) { alert("XmlHttpRequest non supporté"); } else { xml.onreadystatechange = function() { if(xml.readyState==4) { var opt=xml.responseText.split("\t"); tb2.length=0; for ( var n=1;n<opt.length;n++ ) { tb2.length++; tb2.options[tb2.length-1].text=opt[n]; } } } xml.open("GET", "Ajaxproduit.php?tbl2="+tb1.options[tb1.selectedIndex].text, true); xml.send(null); } }
</script>
voici le formulaire 


<tr>
             <td width="230">famille:
          <select name="tb1" id="tb1"  onchange='appel();'>
          <option value='-1'>Aucun</option>

              <?php
       
          $rs=mysql_query("SELECT DISTINCT desg from typeproduit");
          while($ligne=mysql_fetch_array($rs)){
          echo"<option value='".$ligne['codeTypeP']."'>".$ligne['desg']."</option>";

}
         
         
?>
          </select></td>
          <td width="233">produit:
          <select    name="tb2" id="tb2"> 
      </select></td>


voici la réponse

<?php
header('Content-type:text/html;charset=ISO-8859-1');
$co=mysql_connect("localhost","root","");
$dbnom="produit";
 $db=mysql_select_db($dbnom,$co);
 $rch="WHERE t2t1ind='".$_GET["tbl2"]."'";
 $res=mysql_query("SELECT * FROM produit ".$rch,$co); $max=@mysql_num_rows($res);
 $t="";
 for ($nb=0;$nb<$max;$nb++) {
 $i=mysql_result($res,$nb,"t2ind");
 $t.="\t".$i; }
 echo $t; mysql_close($co);
?>


merci d'avance


samedi 6 juin 2009 à 15:21:39 | Re : deux listes liées

Bul3

Membre Club
1° tu utilises tb2 où est définie cette variable ?
2° contrôle la réponse d'ajax
    dans appel()  fais un alert(xml.responseText);

NavigateursQuelques Explications
Chrome
contrôler page actuelle / Options pour développeurs
/ Console Javascript
FireFox
Outils / Console d'erreurs
et mieux : télécharger FireBug
Internet
Explorer
activer le deboggage : Outils/options Internet/Avancés
dans la liste, sous "Navigation" : décocher
o Afficher une notification de chaque erreur de script
o Désactiver le débogage de Scripts (Internet Explorer)
et mieux (pour IE < 8) : télécharger le Debogger IE
voir aussi : DebugBar et Companion JS
K-Meleon
Outils / Console d'erreurs
Opera
Outils / Avancé / Console d'erreurs
Safari
Debug / Show JavaScript Console
° modifier Fichier com.apple.Safari.plist situé dans le
répertoire : Support:\Documents and Settings\utilisateur
\Application Data\Apple Computer\Safari\Preferences\
y ajouter <key>IncludeDebugMenu</key>
<true/>






samedi 6 juin 2009 à 15:42:36 | Re : deux listes liées

Bul3

Membre Club
il doit aussi te falloir adapter les noms des champs de la bse de données :
 $rch="WHERE t2t1ind='".$_GET["tbl2"]."'";
la clé primaire est bien nommée t2t1ind ?



Cette discussion est classée dans : mysql, rs, post, xhr, codetypep


Répondre à ce message

Sujets en rapport avec ce message

xmlhttprequest et select [ par cseagle ] Bonjour tout le monde, Suite à la source d'Antomicro pour son chat sur phpcs (http://www.phpcs.com/code.aspx?ID=32681) j'ai decidé d'essayer de tra pb XMLHTTPRequest [ par LaTatadu91 ] Bonjour a tous, voila je cherche a changer les valeurs de plusieurs input situés ds un tableau sans recharger la page sur un onchange de balise : ap Compteur de click [ par piep14 ] Bonjour, je souhaite faire un systeme de compteur de clique sur des liens vers d'autres sites !!!J'essai la technologie AJAX ! J'arrive a ceci mais ca [AJAX] Plusieurs Champs mis à jour à partir d'un seul [ par Souboc ] Bonjour, En m'inspirant d'un tuto, je souhaite mettre à jour plusieurs champs de formulaire en fonction du choix fait dans une dropdown. Voilà mon co XMLHttpRequest probleme [ par hlimaiem ] Limaiem heykelBonjour, j'ai un page php qui contient un tableau remplis depuis une base de donnees. Ma base et rempli a partir d'un programme en java Probleme traitement de donnée d'un formulaire recuperer en ajax [ par ssabard ] Bonjour j'ai un soucis je n'arrive pas a recuperer les values des select et input text remplit a l'aide d'ajax pour traiter un formualire.J'ai une lis une seul variable post passe avec ajax ? [ par caviar ] Saluté...j'ai un petit problème bizare avec une fonction ajaxen fait un seul des paramètres que je veux envoyer à mon script php passe apparamentsi le Vérification de doublons [ par eddie5150 ] Bonjour à tous,je viens de me lancer dans AJAX, mais je ne comprends pas encore tout très bien,aussi j'ai essayé d'effectuer une vérification automati formulaire php, javascript et html [ par nicomilville ] mysql_connect("localhost", "nicomilville", ""); // remplace 'pseudo' et 'passe' par le pseudo et le mo(t de passe que tu utilise pour te connecter a t Problème formulaire [ par hourad ] Bonjour à tous,J'ai un petit problème avec AJAX.Voilà, je l'utilise pour à chaque changement d'option dans une liste, ça change un formulaire en desso


Nos sponsors


Sondage...

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