2 listes déroulante lié javascript+phpmysql

roymustang7 Messages postés 1 Date d'inscription mercredi 15 avril 2009 Statut Membre Dernière intervention 15 avril 2009 - 15 avril 2009 à 01:30
Bul3 Messages postés 4933 Date d'inscription samedi 1 juillet 2006 Statut Membre Dernière intervention 2 février 2015 - 15 avril 2009 à 09:30
Bonjour,

je voudrais concevoir 2 listes déroulantes liés dont le contenu est
des données php mysql la première contient le nom de matière première
l'attribut des_mat_pre issu de cette table


#
# Structure de la table `matiere_premiere`
#

CREATE TABLE matiere_premiere (
code_mat_pre int(20) NOT NULL auto_increment,
des_mat_pre varchar(20) NOT NULL default '',
code_four varchar(20) NOT NULL default '',
PRIMARY KEY (code_mat_pre,code_four)
) TYPE=MyISAM;



et la deuxième liste qui va selon la jointure de la
clé(code_mat_pre) afficher les type de matière première l'attribut
des_typ_mat_pre

#
# Structure de la table `type_matiere_premiere`
#

CREATE TABLE type_matiere_premiere (
code_typ_mat_pre int(20) NOT NULL auto_increment,
des_typ_mat_pre varchar(20) NOT NULL default '',
code_mat_pre varchar(20) NOT NULL default '',
couleur varchar(20) NOT NULL default '',
PRIMARY KEY (code_typ_mat_pre,code_mat_pre)
) TYPE=MyISAM;

donc en effet vu qu'on peut pas appeler par un événement javascript
du contenu phpmysql j'ai du me concentrer sur l'ajax pour trouver un
script qui le permet et voici le lien ou j'ai trouvé un

http://siddh.developpez.com/articles/ajax/#LIV-A
j'ai essayé de l'appliquer le mieux que possible mais c'est seulement le contenu de ma première liste qui s'est affiché

voici mon code pour la première page

<html>
<head>
<title>Tutoriel Ajax (XHTML + JavaScript + XML)</title>
<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 okif(xhr.readyState 4 && xhr.status 200){
leselect = xhr.responseText;
// On se sert de innerHTML pour rajouter les options a la liste
document.getElementById('typ_mat_pre').innerHTML = leselect;
}
}

// Ici on va voir comment faire du post
xhr.open("POST","ajaxtypematierepremiere.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('mat_pre');
code_mat_pre = sel.options[sel.selectedIndex].value;
xhr.send("code_mat_pre="+code_mat_pre);
}
</script>
</head>

<form action="liste déroulante.php" method="post">
<fieldset style="width: 500px">
<legend>Liste liées</legend>
<label>matiere premiere</label>
<select name='mat_pre' id='mat_pre' onchange='go()'>
<option value='-1'>Aucun</option>
<?
mysql_connect("localhost","root","");
mysql_select_db("art-mania");
$res = mysql_query("SELECT distinct des_mat_pre FROM matiere_premiere ORDER BY des_mat_pre");
while($row = mysql_fetch_assoc($res)){
echo "<option name='des_mat_pre' value='".$row["des_mat_pre"]."'>".$row["des_mat_pre"]."</option>";
}
?>
</select>
<label>type matière première</label>

<select name='typ_mat_pre'>
<option value='-1'>Choisir une matière première</option>
</select>

</fieldset>
</form>

</html>

et ma deuxième page ajaxtypematierepremiere.php

<?php
echo "<select name='typ_mat_pre'>";
if(isset($_POST["code_mat_pre"])){
mysql_connect("localhost","root","");
mysql_select_db("art-mania");
$res = mysql_query("SELECT * FROM type_matiere_premiere,matiere_premiere
WHERE type_matiere_premiere.code_mat_pre=".$_POST["code_mat_pre"]." ORDER BY des_typ_mat_pre");
while($row = mysql_fetch_assoc($res)){

echo "<option value='".$row["des_typ_mat_pre"]."'>".$row["des_typ_mat_pre"]."</option>";
}
}
echo "</select>";
?>

donc voila c'est complexe et je conjure votre aide merci :((((((((((((((((

1 réponse

Bul3 Messages postés 4933 Date d'inscription samedi 1 juillet 2006 Statut Membre Dernière intervention 2 février 2015 16
15 avril 2009 à 09:30
Bonjour,
>>c'est complexe...
peut-être, mais foultitude de questions, donc de réponses
       sur toute la toile et sur CodesSources en particulier
tu n'as pas du chercher bien longtemps....
ch'tiot exemple ici
Cordialement [mon Site] [M'écrire] Bul
0
Rejoignez-nous