Problème de caractères en JavaScript [Résolu]

Signaler
Messages postés
7
Date d'inscription
mardi 14 avril 2020
Statut
Membre
Dernière intervention
2 septembre 2020
-
Messages postés
7
Date d'inscription
mardi 14 avril 2020
Statut
Membre
Dernière intervention
2 septembre 2020
-
Bonjour,

Je suis actuellement entrain de créer un site avec un système de recherche.


InputSearch.oninput = function(){
var Val = InputSearch.value;
$('#contentpage').load('all.php?q=' + Val);
}


Sauf que si un utilisateur met un "&", "+", etc... le code ne marche plus.
J'aimerais donc savoir si il existe un genre de htmlspecialchars() mais en JS.

Merci d'avance.

2 réponses

Messages postés
29617
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
28 septembre 2020
2 800
Bonjour,

En JS, tu pourrais simuler la fonction htmlspecialchars par une fonction du genre
function escapeHtml(text) {
  var map = {
    '&': '&',
    '<': '<',
    '>': '>',
    '"': '"',
    "'": '''
  };
  
  return text.replace(/[&<>"']/g, function(m) { return map[m]; });
}


Mais je pense qu'il serait plus "propre" de changer ta méthode .load() par une appel ajax en post.
var Val = InputSearch.value;
$.ajax({ cache: false,
    url: "all.php",
    type: "POST",
    data: { q: Val }
}).done(function (data) {
   $('#contentpage').html(data);
}).fail(function (jqXHR, textStatus) {
   console.log("Erreur Ajax",jqXHR,textStatus);
});


bien entendu, dans ton fichier all.php .. il faudra modifier ta récupération de variable
au lieu d'utiliser le $_GET , il faudra utiliser le $_POST

Messages postés
7
Date d'inscription
mardi 14 avril 2020
Statut
Membre
Dernière intervention
2 septembre 2020

Ok, merci je vais tester ça ce soir !