Besoin d'aide sur une liste déroulante !

lepolo88 Messages postés 4 Date d'inscription mercredi 4 octobre 2006 Statut Membre Dernière intervention 2 septembre 2009 - 30 avril 2009 à 17:47
lepolo88 Messages postés 4 Date d'inscription mercredi 4 octobre 2006 Statut Membre Dernière intervention 2 septembre 2009 - 12 mai 2009 à 14:44
Bonjour,
Débutante je galère depuis plusieurs jours sur une liste déroulante ! elle affiche bien les données de ma base mais lorsqu'on clique elle revient sur la première valeur et donc aucune nouvelle page ne se charge ! bloquée ! j'ai vraiment besoin d'aide !

voici le code correspondant :

<script src="fonction.js" ></script>
<?php
include("connect.php");
<form name="catar" method="post" action="sousarticles.php"></form>

.......

$sql2="SELECT DISTINCT couleur FROM articles WHERE famille='".$_POST['valcate']."' AND nom_article='".$_POST['valarti']."'";
$req2 = mysql_query($sql2) or die('Erreur SQL !
'.$sql2.'
'.mysql_error());

echo 'Couleur : <select name="valcoul" onchange="trans_catar(\''.$_POST['valcate'].'\',\''.$_POST['valarti'].'\',\''.$_POST['valcoul'].'\',\''.$_POST['deroultail'].'\');">';
while($data1 = mysql_fetch_array($req2))
    {
    echo '<option value="'.$data1['couleur'].'">'.$data1['couleur'].'</option>';
    }
 if($_POST['valcoul']!="" )
    {
    echo '<option value="'.$_POST['valcoul'].'" selected>'.$_POST['valcoul'].'
    </option>';
    }

echo '</select>

//////////////////et dans le fichier fonction.js

function trans_catar(valeur,valeur1,valeur2,valeur3)
{
var cata_trans=valeur;
var arta_trans=valeur1;
var coula_trans=valeur2;
var taill_trans=valeur3;
document.catar.valcate.value=cata_trans;
document.catar.valarti.value=arta_trans;
document.catar.valcoul.value=coula_trans;
document.catar.deroultail.value=taill_trans;
document.catar.submit();
}

Je précise que ce n'est pas moi qui ait fait le code mais un ami qui ne s'en occupe plus et malgré mes journées entières à chercher par ci par la, je ne trouve pas !! je vous remercie d'avance pour votre aide , ma tête explose !

5 réponses

kohntark Messages postés 3705 Date d'inscription lundi 5 juillet 2004 Statut Membre Dernière intervention 27 avril 2012 30
1 mai 2009 à 12:33
Salut,

Il y a pas mal d'erreurs dans ton code, et certaines relèvent peut être de la conception :

- tu as des champs qui ont le même name "valcoul" mais je ne vois pas bien l'utilité.
- les arguments passés à ta fonction trans_catar sur un événement onchange de ton select sont toujours les mêmes (inscrits "en dur" par php) pourquoi ne pas les passer directement comme value aux hiddens et virer cette fonction ?
par ex :
echo '';
Si le but est de s'assurer qu'il y a eu un choix ds le select ce n'est à mon avis pas la bonne méthode.

Je pense que tu devrais préciser ce que tu souhaites faire parce que ce n'est pas clair.

Cordialement,

Kohntark -
0
lepolo88 Messages postés 4 Date d'inscription mercredi 4 octobre 2006 Statut Membre Dernière intervention 2 septembre 2009
4 mai 2009 à 10:35
Merci pour ta réponse, je vais essayer !
En fait le problème c'est que j'ai une liste déroulante avec un choix de couleur ( d'articles) , la liste affiche bien les différentes couleur de ma base de données mais lorsqu'on veut choisir une autre couleur que la première par défaut dans la liste, la page ne se charge pas et on ne peut voir que l'article de la première couleur de la liste !
Voici le site concerné : http://www.abakka.fr  et pour l'exemple cité voir rubrique accessoires , maroquinerie et par exemple porte- feuille
Dans tous les cas je vais essayer ce que tu m'as dit ! je te dirai ce que ça donne !
merci beaucoup pour ta réponse !
0
kohntark Messages postés 3705 Date d'inscription lundi 5 juillet 2004 Statut Membre Dernière intervention 27 avril 2012 30
4 mai 2009 à 13:21
Je n'ai pas suffisamment d'éléments, mais il me semble qu'il y a une erreur de méthode.

Si je reprends :
Tu as une page présentant un produit.
1 champs couleur
1 champs quantité que l'on peut modifier à l'aide, ou non, de 2 boutons +/-
1 bouton pour acheter le produit

Pourquoi donc faire une soumission du formulaire au changement du select couleur ??
la photo de ton produit change de couleur peut être ? quel est le code qui s'occupe de ça ? JS ? PHP ?
Il n'y a rien qui permette de le savoir dans ce que tu as fourni.

Cordialement,

Kohntark -
0
lepolo88 Messages postés 4 Date d'inscription mercredi 4 octobre 2006 Statut Membre Dernière intervention 2 septembre 2009
4 mai 2009 à 17:28
excuse moi mais vu que ce n'est pas moi qui suis l'auteur du code, je galère !
en effet , les photos devraient changer lorsqu'on selectionne une couleur, c'est du javascript apparemment
voici le code entier de la page sousarticles.php, je sais qu'il y a pas mal d'erreur mais j'aimerai pour l'instant juste que les photos changent lorsqu'on sélectionne une couleur !
est ce que tu serais d'accord pour qu'on s'échange nos mails ?
Dans tous les cas je te remercie

""sousarticles.php""

?php
session_start();
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN">
<html>
<head>
///je passe les meta ///
<link rel= "stylesheet" href="mm_health_nutr.css" type="text/css" />
<script src="fonction.js" ></script>
<?php
include("connect.php");

//$_POST['valcat']='decoration';
//$_POST['valart']='boite_secrete';
//$_POST['valcat']='vetements';
//$_POST['valart']='glaoua';

if($_POST['valcoul']!="")
{
$reqplus1=" AND couleur='".$_POST['valcoul']."'";
}
else $reqplus1="";
if($_POST['valcate']!="") $_POST['valcat']=$_POST['valcate'];
if($_POST['valarti']!="") $_POST['valart']=$_POST['valarti'];
$sql10="SELECT nom_article,photo,photo2,taille,prix,compo,couleur FROM articles WHERE famille='".$_POST['valcat']."' AND nom_article='".$_POST['valart']."'".$reqplus1." GROUP BY nom_article";
$req10 = mysql_query($sql10) or die('Erreur SQL !
'.$sql10.'
'.mysql_error());
$res10 = mysql_fetch_array($req10);

//echo 'requete : '.$sql10.'
';
//echo 'article : '.$res10['nom_article'].'
';
//echo 'couleur : '.$res10['couleur'].'
';
//echo 'POST de couleur : '.$_POST['valcoul'].'
';

echo '<script language="javascript">
function chgt_image()
 {
 document.grande.src="images/'.$res10['photo2'].'";
 document.petite.src="images/'.$res10['photo'].'";
 }
function init_image()
 {
 document.grande.src="images/'.$res10['photo'].'";
 document.petite.src="images/'.$res10['photo2'].'";
 } 
 
</script>';
?>

<script type="text/javascript">
sfHover = function() {
        var sfEls = document.getElementById("menu").getElementsByTagName("LI");
        for (var i=0; i<sfEls.length; i++) {
                sfEls[i].onmouseover=function() {
                        this.className+=" sfhover";
                }
                sfEls[i].onmouseout=function() {
                        this.className=this.className.replace(new RegExp(" sfhover\\b"), "");
                }
        }
}
if (window.attachEvent) window.attachEvent("onload", sfHover);




</script>


 


<style>
.dep
 {
 width:150px;
 height:113px;
 }


#prix
{
color: #000000;
}
.prix
{
color: #000000;
}
prix
{
color: #000000;
}
</style>


</head>

<noscript>REMARQUE : Pour utiliser de nombreuses fonctionnalités du site Abakka, vous avez besoin de Javascript et de cookies. Vous pouvez les activer à l'aide des paramètres de votre navigateur.

</noscript>

<form name="cat" method="post" action="articles.php"></form>
<form name="cata" method="post" action="sousarticles.php"></form>
<form name="newtaille" method="post"></form>
<form name="catar" method="post" action="sousarticles.php"></form>


  ----

     <li>
  Catégories
 
 
 
 
 <?php
 $sqlcat=\"SELECT DISTINCT famille FROM articles\";
 $reqcat=mysql_query($sqlcat) or die('Erreur SQL !
'.$sqlcat.'
'.mysql_error());
 $num_rows = mysql_num_rows($reqcat);
 while($data = mysql_fetch_assoc($reqcat))
 {
 $val_aff=ucfirst($data['famille']); 
 echo '<li>'.$val_aff.'</li>';
 }
?>
  ...........................
  <!--
  <li>Vêtements</li>
  <li>Décoration</li>
  <li>Accessoires</li>
  <li>Encens</li>
  <li>Produits Naturels</li>
  -->
 
  </li>
  <li>
  Déja  Client
  </li>
  <li>
  Nouveau Client
 
  </li>
  <li>
  Espace Client
 
 
  <li>Changer de mot de passe</li>
  <li>Changer d'adresse de livraison</li>
 
...........................................
 

  

 <?php
$sql1=\"SELECT id,nom_article,photo,photo2,taille,prix,compo,couleur FROM articles WHERE famille='\".$_POST['valcat'].\"' AND nom_article='\".$_POST['valart'].\"'\".$reqplus1.\" GROUP BY nom_article\";
$req1 = mysql_query($sql1) or die('Erreur SQL !
'.$sql1.'
'.mysql_error());
$res = mysql_fetch_array($req1);
echo '

<li class= \"legende\"> Passez la souris pour
changer la photo </li>

';

echo '
<h2> '.$res['nom_article'].'
';
echo ''.wordwrap($res['compo'], 50, \"
\", 1 ).'
';
echo '<h2>Prix : '.$res['prix'].' €';

 

// ===========================================

//=======================================================================================//<gras>Recherche ID

//=======================================================================================

$sql_id=\"SELECT id FROM articles WHERE famille='\".$_POST['valcat'].\"' AND nom_article='\".$_POST['valart'].\"'\".$reqplus1;
$req_id = mysql_query($sql_id) or die('Erreur SQL !
'.$sql_id.'
'.mysql_error());
$res_id = mysql_fetch_array($req_id);

echo '
<fieldset style=\"width:290px;\" align=\"center\">

<form name=\"temps\" method=\"POST\" action=\"ajout_caddie.php\">
';

 

$sql2=\"SELECT DISTINCT couleur FROM articles WHERE famille='\".$_POST['valcat'].\"' AND nom_article='\".$_POST['valart'].\"'\";
$req2 = mysql_query($sql2) or die('Erreur SQL !
'.$sql2.'
'.mysql_error());

 

echo 'Couleur : <select name=\"coul\" onchange=\"trans_catar(\''.$_POST['valcat'].'\',\''.$_POST['valart'].'\',\''.$_POST['valcoul'].'\',\''.$_POST['deroultail'].'\');\">';
 while($data1 = mysql_fetch_array($req2))
    {
 echo '<option value=\"'.$data1['couleur'].'\">'.$data1['couleur'].'</option>';
    }

if($_POST['valcoul']!=\"\" )
{
echo'<option value=\"'.$_POST['valcoul'].'\"selected>'.$_POST['valcoul'].'</option>';
}

echo'</select>

<gras>Quantité :

';

$sqltaille =\"SELECT DISTINCT taille FROM articles WHERE famille= '\".$_POST['valcat'].\"' AND nom_article='\".$_POST['valart'].\"' ORDER BY taille \";
//echo 'requete taille : '.$sqltaille.'
';
$reqtaille = mysql_query($sqltaille) or die('Erreur SQL !
'.$sqltaille.'
'.mysql_error());
$num_rowstaille = mysql_num_rows($reqtaille);
$datatai = mysql_fetch_array($reqtaille);
//echo '<script language=\"javascript\">alert(\"'.$num_rowstaille.'\");<//script>';
if($num_rowstaille==1 and $datatai['taille']!=\"\")
 {
  $datatai['taille']=ucfirst($datatai['taille']);
  echo ' Taille : ';
  echo $datatai['taille'];
 }
else

 {
 $sqlmytaille =\"SELECT DISTINCT taille FROM articles WHERE famille= '\".$_POST['valcat'].\"' AND nom_article='\".$_POST['valart'].\"' ORDER BY taille \";
 $mytaille = mysql_query($sqlmytaille) or die('Erreur SQL !
'.$sqlmytaille.'
'.mysql_error());
 //echo '
valeur de post deroul tail : '.$_POST['deroultail'].'
';
 echo ' Taille : ';
 
 echo'<select name =\"taille\" onchange=\"return choix_taille(\''.$_POST['valcat'].'\',\''.$_POST['valart'].'\',\''.$_POST['valcoul'].'\');\">'; //choix_taille();
 //if($_POST['taille']!=\"\") $_POST['deroultail']=$_POST['taille']; // ================================= TAILLE
 
 if($_POST['deroultail']!=\"\") echo '<option value=\"'.$_POST['deroultail'].'\" checked>'.$_POST['deroultail'].'</option>';
 
 while($datataille = mysql_fetch_assoc($mytaille))
  {
  $datataille['taille']=ucfirst($datataille['taille']);
  if($_POST['deroultail']!=\"\" and $datataille['taille']==$_POST['deroultail'])
   {
   $choix_taille=\"\";
   }
   else
   {
   $choix_taille=ucfirst($datataille['taille']);
   echo '<option value=\"'.$choix_taille.'\">'.$choix_taille.'</option>';
   }
  }
 echo '</select>';
 } 
 

echo '

</form></fieldset>

';

 

//===========================================
echo '
';

echo '
';

 

?>
 

Voila, je sais d'avance que tu vas me dire que c'est gavé d'erreurs ! mais est ce qu'il y a une possibilté pour qu'au moins on puisse choisir les couleurs correctement, ensuite je m'atelerai aux différentes erreurs  !
Si tu  as besoin d'une autre page de code , je l'enverrai

MERCI BEAUCOUP !
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
lepolo88 Messages postés 4 Date d'inscription mercredi 4 octobre 2006 Statut Membre Dernière intervention 2 septembre 2009
12 mai 2009 à 14:44
Personne pour me donner un  coup de main ??
SVP !
0
Rejoignez-nous