Problème de caractères en JavaScript

Résolu
LYXAIM Messages postés 7 Statut Membre -  
LYXAIM Messages postés 7 Statut Membre -
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

  1. jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention   4 831
     
    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
  2. LYXAIM Messages postés 7 Statut Membre
     
    Ok, merci je vais tester ça ce soir !
    0