Liste deroulante avec optgroup json Jquery mysql et php

Messages postés
2
Date d'inscription
lundi 6 mai 2019
Statut
Membre
Dernière intervention
6 mai 2019
-
Bonjour à tous, je souhaite afficher une liste déroulante avec optgroup en utlisant des informations provenant d'une base de données mysql. Le principe est que lorsqu'on clique sur un bouton une requête ajax est envoyée au serveur par un fichier article.php qui renvoie le resultat au format json.
Le problème se situe au niveau du code jquery sensé envoyer les informations dans mon formulaire html. J'ai besoin de votre aide car je bute contre cette partie.Ceci est mon code:

script jQuery

<script type="text/javascript">
$(document).ready(function() {
$(".addrow").live('click',function(){
var articledesi ="";  var options = ''; 
$.ajax({
url: "article.php",
type: "post",
dataType: "json",
success:function(j){
var options = '';  var optgroup = ''; 
var valeur = '';   
for (var w = 0; w < z.length; w++) {
optgroup = '<optgroup label=' + z[w].libellecat+'>';
for (var k = 0; k < j.length; k++) {
options += '<option value="' + j[k].id + '">' + j[k].libelle+'</option>';
valeur  +='<span>'+j[k].libelle+'</span>';
}
optgroup += '</optgroup>';
}
$('select#itemarticle').html(options);
}
})  
articledesi +='<select name="itemarticle" id="itemarticle" class=" select validate[required]" ></select><br/>';
$("div#article").append(articledesi); 
});
});

</script>

formulaire html
<form id="form_article" class="mws-form validate" action="ins_article.php" method="post" >

<div class="mws-form-inline">
<div class="aj" > <a class="addrow" ><img src="css/icons/16/add.png"/> <b>Nouvel article</b> </a>  </div>
</div>            
<div class="mws-form-inline" id="lign_fact"><div class="mws-form-row">

<label>Ligne Article</label>
<div class="mws-form-item large"><div class="mws-form-cols clearfix"><div class="mws-form-col-2-8 alpha">
<label>Article</label>
<div id="article">
<!-- le resultat ici--> 
</div>              
</div></div></div></div></div>
<div class="mws-button-row" style="padding-right:300px"><input type="submit" value="ENREGISTRER" class="mws-button red" /></div>
</form>



fichier php article.php
<?php 
//connexion à la base de données
echo '[' ; 
?>
     {"id" : 0 , "libelle" : "Selectionner un article"},
<?php 
  $req_ty = executer('SELECT * FROM `sous_categorie_article` WHERE ID_SOUS_CATEGORIE_ARTICLE <> 11 ');
  $nbrcat = mysql_num_rows($req_ty);
  $z=0;
  while($res_se = mysql_fetch_array($req_ty)){ $z++; 
?> 
   {"libellecat" : "<?php echo $res_se['NOM_SOUS_CATEGORIE_ARTICLE']; ?>"

  <?php if($z==$nbrcat ){ echo '}';} else { echo '},'; } ?>
<?php 
 
         
     $req_coma = "SELECT * FROM `article` WHERE SOUS_CATEGORIE_ARTICLE_ID <> 11 AND SOUS_CATEGORIE_ARTICLE_ID ='".$res_se['ID_SOUS_CATEGORIE_ARTICLE']."' ORDER BY NOM_ARTICLE"; 
     $req_commune = executer($req_coma);
     $nbr = mysql_num_rows($req_commune);
     $j=0;
     while($data = mysql_fetch_array($req_commune)) {  $j++; 
?>      
            {"id" : <?php echo $data['ID_ARTICLE'] ?> , "libelle":"<?php echo $data['NOM_ARTICLE']; ?>"   
     <?php if($j==$nbr ){ echo '}';} else { echo '},'; }
     
       } }
   echo ']';
 
?>
Afficher la suite 

Votre réponse

2 réponses

Messages postés
1694
Date d'inscription
vendredi 9 mai 2008
Statut
Modérateur
Dernière intervention
17 mai 2019
39
0
Merci
bonjour ca correspond a quoi la variable z
patassi
Messages postés
2
Date d'inscription
lundi 6 mai 2019
Statut
Membre
Dernière intervention
6 mai 2019
-
Le nombre de sous catégorie
Commenter la réponse de @karamel
Messages postés
1694
Date d'inscription
vendredi 9 mai 2008
Statut
Modérateur
Dernière intervention
17 mai 2019
39
0
Merci
et si tu fait un console.log(z) sa donne quoi et aussi pour la variable j car de ce que je comprend sa doit retourner un objet dans les deux cas.

rien ne sert de courir il faut partir a point.
cours Forest cours !
Commenter la réponse de @karamel

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.