je me permets de vous demander conseil:
J'ai trois select alimentés par 3 tables
Lorsque je choisis le 1er select (marque) puis le 2èmee(modele) et ensuite le 3ème select(piece)
tout se passe bien, si marque ne possède pas de modele tout se passe bien
mon soucis est que si je sélectionne une marque avec modele et qu'ensuite je
re-sélectionne mon select marque avec des modeles, il me trouve bien mon nombres d'enregistrements désirés mais
mon select modele garde en mémoire le modele précédemment demandé avec mes modeles actuellemnt demandés
je n'arrive pas à initialiser mon select modele
merci de votre compréhension et j'espère savoir où je galère
Amicalement
bernard25
Code : Tout sélectionner
<form class="formarticle" id='formulaire' action="index.php" method="post">
<p class="selectcentrer">
<!-- Recherche par champ 'marque' -->
<select size=1 name="marque" id="marque" onchange="form.submit()">
<option value="<?php if (isset($_POST['marque'])){echo $_POST['marque'];} ?>"><?php if (isset($_POST['marque'])){echo $_POST['marque'];} else { echo '--liste Marque--';}?></option>
<?php $resultmarque = mysql_query("SELECT * FROM marque" );
while($data1 = mysql_fetch_array($resultmarque))
{
echo '<option value="'.$data1[1].'">'.$data1['marque'];
echo '</option>'."\n";
}
?>
</select>
<script type="text/javascript">
//<![CDATA[
function change_valeur() {
select = document.getElementById("marque");
choice = select.selectedIndex // Récupération de l'index du <option> choisi
marque = select.options[choice].value; // Récupération du texte du <option> d'index "choice"
}
//]]>
</script>
<!-- Récupère la valeur 'Marque' -->
<?php if(isset($_POST['marque'])){
$marquevoiture= $_POST['marque'];
$resultmarque = mysql_query("SELECT * FROM marque WHERE marque LIKE '".$_POST['marque']."' ORDER BY marque" );
$row = mysql_fetch_row($resultmarque);
$reference =$row[2];
$resultmodele = mysql_query("SELECT * FROM modele WHERE refmarque LIKE '".$reference."' ORDER BY refmarque" );
$nb_modele=mysql_num_rows($resultmodele);
}
?>
<!-- Recherche et filtre le champ 'modele' par rapport au champ 'marque' -->
<?php
if(!isset($_POST['marque']) OR $_POST['marque']=='' OR $nb_modele==0){
unset($_POST['modele']);
echo '<select size=1 name="modele" id="modele" disabled="disabled" onchange="form.submit();">';
}
else {echo '<select size=1 name="modele" id="modele" onchange="form.submit();"> ';
}
?>
<option value="<?php if (isset($_POST['modele'])){echo $_POST['modele'];} ?>"><?php if (isset($_POST['modele'])){echo $_POST['modele'];} else { echo '--liste Modèle--';}?></option>
<?php $resultmodele = mysql_query("SELECT * FROM modele WHERE refmarque LIKE '".$reference."' ORDER BY refmarque" );
while($data2 = mysql_fetch_array($resultmodele))
{
echo '<option value="'.$data2[1].'">'.$data2['modele'];
echo '</option>'."\n";
}
echo '</select>'."\n";
?>
<script type="text/javascript">
//<![CDATA[
function change_valeur() {
select = document.getElementById("modele");
choice = select.selectedIndex // Récupération de l'index du <option> choisi
modele = select.options[choice].value; // Récupération du texte du <option> d'index "choice"
}
//]]>
</script>
<!-- Récupère la valeur 'modele' -->
<?php if(isset($_POST['modele'])){
$modelevoiture= $_POST['modele'];
$resultmodele = mysql_query("SELECT * FROM modele WHERE modele LIKE '".$_POST['modele']."%' ORDER BY modele" );
$row = mysql_fetch_row($resultmodele);
$refmodele =$row[4];
$resultpiece = mysql_query("SELECT * FROM piece WHERE modele LIKE '".$_POST['modele']."%' ORDER BY modele" );
$nb_piece=mysql_num_rows($resultpiece);
}
?>
<!-- Recherche et filtre le champ 'piece' par rapport au champ 'modele' -->
<?php
if(!isset($_POST['modele']) OR $_POST['modele']=='' OR $nb_piece==0){
unset($_POST['piece']);
echo '<select size=1 name="piece" id="piece" disabled="disabled" onchange="form.submit();">';
}
else {echo '<select size=1 name="piece" id="piece" onchange="form.submit();"> ';
}
?>
<option value="<?php if (isset($_POST['piece'])){echo $_POST['piece'];} ?>"><?php if (isset($_POST['piece'])){echo $_POST['piece'];} else { echo '--liste Pièce--';}?></option>
<?php $resultpiece = mysql_query("SELECT * FROM piece WHERE modele LIKE '".$_POST['modele']."%' ORDER BY modele" );
while($data3 = mysql_fetch_array($resultpiece))
{
echo '<option value="'.$data3[1].'">'.$data3['piece'];
echo '</option>'."\n";
}
echo '</select>'."\n";
?>
<script type="text/javascript">
//<![CDATA[
function change_valeur() {
select = document.getElementById("piece");
choice = select.selectedIndex // Récupération de l'index du <option> choisi
piece = select.options[choice].value; // Récupération du texte du <option> d'index "choice"
}
//]]>
</script>
<!-- Récupère la valeur 'piece' -->
<?php
if(isset($_POST['piece'])){
$piecevoiture= $_POST['piece'];
$resultpiece = mysql_query("SELECT * FROM piece WHERE piece LIKE '".$_POST['piece']."%' ORDER BY piece" );
$row = mysql_fetch_row($resultpiece);
$refid =$row[0];
$piecevoiture =$row[1];
$photo =$row[5];
$prix =$row[6];
$refpiece =$row[7];
}
?>
</br>
<?php
echo '</br>';
echo '<strong class="textegras">Vous avez choisi :</strong>';
echo '</br>';
//Si la valeur 'marque' existe alors on l'afiche
if(isset($_POST['marque'])){
echo '- Marque Véhicule : <strong class="textegras">'.$marquevoiture.'</strong></br>';
}
//Si la valeur 'modele' existe alors on l'afiche
if(isset($_POST['modele'])){
echo '- Modèle Véhicule : <strong class="textegras"> '.$modelevoiture.'</strong></br>';
}
//Si la valeur 'piece' existe alors on l'afiche
if(isset($_POST['piece'])){
echo '- Pièce Véhicule : <strong class="textegras">'.$piecevoiture.'</strong>';
echo '</br>';
// Filtre sur le champ 'piece'
$result = mysql_query("SELECT * FROM piece WHERE piece LIKE '".$_POST['piece']."%' ORDER BY id" );
$nb_total=mysql_num_rows($result);
$row = mysql_fetch_row($result);
// Trouve tous les enregistrements de la même pièce
while($row = mysql_fetch_array($result))
{
$idpiece=$row[0];
$piecevehicule=$row[1];
$modelepiece=$row[2];
$refmarquepiece=$row[3];
$refmodelepiece=$row[4];
$photo=$row[5];
$prix=$row[6];
}
echo '</br>';
// Filtre sur piece d'un même modele
$result = mysql_query('SELECT * FROM piece WHERE piece="'.$_POST['piece'].'" AND modele="'.$_POST['modele'].'"ORDER BY modele' );
$row = mysql_fetch_row($result);
$idpiece=$row[0];
$piecevehicule=$row[1];
$modelepiece=$row[2];
$refmarquepiece=$row[3];
$refmodelepiece=$row[4];
$photo=$row[5];
$prix=$row[6];
$nb_total=mysql_num_rows($result);
// Affiche l'enregistrement
echo 'Désignation : '.$piecevehicule.' '.$modelepiece.' Prix : '.$prix.' €</br>';
echo '<strong class="imagecentrer"><img src="'.$photo.'" width="100" height="100" alt="Photo 01" />'.'</strong></br>';
echo '<strong class="textegras">'.$nb_total.'</strong> enregistrement(s) trouvé(s)';
}
?>
</p>
</form>