11521 sujets

JavaScript, DOM et API Web HTML5

Bonjour,
J'utilise la requête suivante pour lister les fichiers d'un dossier.
$.ajax({
url: pathpays,
success: function(data){
debug(data) ;
$(data).find("a:contains(.png)...
Celle-ci fonctionne parfaitement sauf qu'Ajax tronque les noms de fichier dont la longueur est supérieure à 20 caractères?
Voici la sortie Ajax du point incriminé:
<td><a href="Paris-Palais-de-la-cite%20-%20Copie.jpg">Paris-Palais-de-la-c..&gt;</a></td>
Naturellement recherchant les fichier ayant un extension spécifique le.find ne peut les trouver.

Est-ce une limitation, un bug ou une erreur de ma part? Smiley fache

Est-il possible de récupérer le champ href lui-même qui contient l'information correcte?

Merci de vos commentaires Smiley biggrin ou d'un bypass pour contourner ce problème.
Salut,
Pas assez de code pour pouvoir t'aider...
Tu arrêtes ton code juste après la sélection de tes éléments contenant '.png' et après on ne sait pas ce que tu en fais...
De plus, dans ton exemple, c'est un .jpg qui est retourné...

Est-ce que console.log(data) te retourne quelque chose de correct ? Il faudrait savoir si ce retour est déjà OK.
Salut,
Oui A force de vouloir etre bref on devient incompréhensible.
Je reprend, je liste tous les fichiers ( png et jpg ) d'un dossier contenant des images que je souhaite afficher. Pour cela j'utilise le code jquery suivant:

var pays = feature.get('pa') ;
text = text + '<div class="photos">';
var pathpays = "Data/Photos/" + pays + '/';

$.ajaxSetup({async: false}); // passage en mode synchrone
$.ajax({
url: pathpays,
success: function(data){
//debug(data) ;
$(data).find("a:contains(.png),a:contains(.jpg)").each(function(){
//debug($(this).text());
var image = $(this).attr("href");
// will loop through
//debug("Found a file: " + image );
text += '<img class="arrondie" src="' + pathpays + image + '" />' ;
});
text = text + '</div>' ;
//debug(text) ;
}
});
Si ce code fonctionne parfaitement à première vue, il manque tous les fichiers dont le filename dépasse 20caractàeres.
En effet la requête Ajax donne le résultat suivant:
...
...</td><td><a href="Paris-Notre-Dame.jpg">Paris-Notre-Dame.jpg</a> </td><td align="right">2015-09-05 09:49 </td>...
...<a href="Paris-Palais-de-la-cite%20-%20Copie.jpg">Paris-Palais-de-la-c..&gt;</a></td>...

On s’aperçoit que le champ texte est en effet tronqué à 20c.

Hors l'extraction jquery $(data).find("a:contains(.png),a:contains(.jpg)")... utilise ce champ texte pour rechercher '.jpg' ou '.png' et ne le trouve pas

Ce qui est particulierement frustrant car le bon filename se trouve dans le parametre du champ href='...

Après pasmal de lecture j'ai trouvé le bon test, ce qui donne:

$(data).find("[href$='.jpg'],[href$='.png']").each(function(){ qui extrait ce parametre.

Au final voiçi cela donne:

var pays = feature.get('pa') ;
text = text + '<div class="photos">';
var pathpays = "Data/Photos/" + pays + '/';

$.ajaxSetup({async: false}); // passage en mode synchrone
$.ajax({
url: pathpays,
success: function(data){
//debug(data) ;
$(data).find("[href$='.jpg'],[href$='.png']").each(function(){
var image = $(this).attr("href");
// will loop through
//debug("Found a file: " + image );
text += '<img class="arrondie" src="' + pathpays + image + '" />' ;
});
text = text + '</div>' ;
}
});

Voilà j’espère que cela sera utile à d'autres. Smiley langue Smiley biggrin Smiley cligne
bonjour,

pouvez vous m'aider, je constate que au niveau de cette ligne il y'a une erreur de code : mauvaise lecture de id_produit

<a href="panier.php?del=<?= $produitdb->id_produit ; ?>" > <h4 style="color:red;"> Supprimer </h4></a>

Merci de me fournir une solution adéquate SVP.
zaied , faut que tu ouvre sujet dédié à ton problème, ici on traite uniquement le problème megaten...