Problème de caractères en JavaScript

Résolu/Fermé
LYXAIM Messages postés 7 Date d'inscription mardi 14 avril 2020 Statut Membre Dernière intervention 2 septembre 2020 - Modifié le 2 sept. 2020 à 14:21
LYXAIM Messages postés 7 Date d'inscription mardi 14 avril 2020 Statut Membre Dernière intervention 2 septembre 2020 - 2 sept. 2020 à 15:25
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.
A voir également:

2 réponses

jordane45 Messages postés 38205 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 12 juin 2024 4 676
2 sept. 2020 à 15:23
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

1
LYXAIM Messages postés 7 Date d'inscription mardi 14 avril 2020 Statut Membre Dernière intervention 2 septembre 2020
2 sept. 2020 à 15:25
Ok, merci je vais tester ça ce soir !
0