Liste deroulante avec optgroup json Jquery mysql et php

patassi Messages postés 2 Date d'inscription lundi 6 mai 2019 Statut Membre Dernière intervention 6 mai 2019 - Modifié le 6 mai 2019 à 20:20
@karamel Messages postés 1855 Date d'inscription vendredi 9 mai 2008 Statut Modérateur Dernière intervention 18 avril 2024 - 6 mai 2019 à 21:22
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 ']';
 
?>

2 réponses

@karamel Messages postés 1855 Date d'inscription vendredi 9 mai 2008 Statut Modérateur Dernière intervention 18 avril 2024 153
6 mai 2019 à 20:27
bonjour ca correspond a quoi la variable z
0
patassi Messages postés 2 Date d'inscription lundi 6 mai 2019 Statut Membre Dernière intervention 6 mai 2019
6 mai 2019 à 20:49
Le nombre de sous catégorie
0
@karamel Messages postés 1855 Date d'inscription vendredi 9 mai 2008 Statut Modérateur Dernière intervention 18 avril 2024 153
Modifié le 6 mai 2019 à 21:22
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.

0
Rejoignez-nous