Comme écrit dans le titre, j'ai un tableau HTML qui comporte quelques colonnes dans lesquelles l'utilisateur doit sélectionner des valeurs dans des listes déroulantes. Ce que je veux faire, c'est pouvoir exporter cette table vers un fichier CSV. J'ai trouvé en ligne un plugin jquery mais j'ai un problème avec les listes déroulantes. Il restitue toutes les options pour chaque ligne au lieu de celles qui sont sélectionnées. J'ai essayé de résoudre ce problème mais j'ai échoué.
Le plugin JQuery et la table d'exemple se trouvent dans jsfiddle:
https://jsfiddle.net/bLa8pn74/
J'ai essayé d'insérer ceci:
if($(this).find('select').each(function(){
line.push(_quote_text($(this).find("option:selected").text()));
}));
Mais il n'a imprimé que la ligne de tête. Maintenant, cela devrait être un simple changement, mais je ne peux tout simplement pas le comprendre.
EDIT: je voudrais que ma solution soit sans créer de nouvelle table.
EDIT 2 : j'ai essayé ce code aussi:
if($(this).find('select')){
line.push(_quote_text($(this).find('option:selected').text()));
}
line.push(_quote_text(_trim_text($(this).text())));
Et cela me donne l'option sélectionnée mais aussi ensuite toutes les options de liste déroulante, et des "", "" supplémentaires, où il trouve une cellule vide.
Et si j'ajoute "else" avant le deuxième "line.push" alors il ne renvoie que les valeurs sélectionnées et tout le reste est vide.
J'ai trouvé ce qui manquait. J'avais juste besoin du ".length" dans ma condition if.
if($(this).find('select').length){
line.push(_quote_text($(this).find('option:selected').text()));
}else{
line.push(_quote_text(_trim_text($(this).text())));
}
Cet article est collecté sur Internet, veuillez indiquer la source lors de la réimpression.
En cas d'infraction, veuillez [email protected] Supprimer.
laisse moi dire quelques mots