IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

[PHP-JS] Problème de quote en php dans un code Javascript généré


Sujet :

Langage PHP

  1. #1
    Membre régulier
    Inscrit en
    Octobre 2004
    Messages
    277
    Détails du profil
    Informations forums :
    Inscription : Octobre 2004
    Messages : 277
    Points : 76
    Points
    76
    Par défaut [PHP-JS] Problème de quote en php dans un code Javascript généré
    Bonjour,

    Voici mon problème :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    $desFournisseur = "L'abressienne";
    $desFournisseur = str_replace("'","\'", $designationFournisseur);
     
    $return = "<ul class=\"nFournisseurs\">";
    $return .= "<li class=\"nFournisseur\" id=\"nFournisseur\" onclick=\"javascript:html_requete(\'requetes_ajax/requete_fournisseur_PPHA.php?fournisseur=$desFournisseur\');\" >";
    $return .= "<a href=\"#\"><div class=\"desFournisseur\">$desFournisseur</div></a></li>";
    $return .= "</ul>";
     
    echo "document.getElementById('fournisseur_update').style.display='';document.getElementById('fournisseur_update').innerHTML='$return';";
    Voilà mon souci, c'est que j'ai cette erreur :
    missing ) after argument list
    [Break on this error] javascript:html_requete('requetes_ajax/r...PPHA.php?fournisseur='+L'ABRASIENNE+'');

    Si la désignation du fournisseur ne comporte pas de quote cela fonctionne merveilleusement bien, donc la je penses que c'est une erreur de quote.

    Merci d'avance.

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    A mon avis tu voulais ecrire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $desFournisseur = "L'abressienne";
    $desFournisseur = str_replace("'","\'", $desFournisseur);

  3. #3
    Membre régulier
    Inscrit en
    Octobre 2004
    Messages
    277
    Détails du profil
    Informations forums :
    Inscription : Octobre 2004
    Messages : 277
    Points : 76
    Points
    76
    Par défaut
    Non je me suis trompé en recopiant c'est :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $designationFournisseur = "L'abressienne";
    $desFournisseur = str_replace("'","\'", $designationFournisseur);

  4. #4
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Tu proteges un ' dans une chaine "string".

    D'ailleurs il vaut mieux faire une chaine 'string' ca t'evite de proteger les " dans le html.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $return .= '<li class="nFournisseur" id="nFournisseur" onclick="javascript:html_requete(\'requetes_ajax/requete_fournisseur_PPHA.php?fournisseur=' . $desFournisseur .'\');" >';

  5. #5
    Membre régulier
    Inscrit en
    Octobre 2004
    Messages
    277
    Détails du profil
    Informations forums :
    Inscription : Octobre 2004
    Messages : 277
    Points : 76
    Points
    76
    Par défaut
    Bon j'ai comme ceci, mais ça ne marche toujours pas :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    $designationFournisseur = "L'abressienne";
    $desFournisseur = str_replace("'","\'", $designationFournisseur);
     
    $return = '<ul class="nFournisseurs">';
    $return .= '<li class="nFournisseur" id="nFournisseur" onclick="javascript:html_requete(\'requetes_ajax/requete_fournisseur_PPHA.php?fournisseur='.$desFournisseur.'\');" >';
    $return .= '<a href="#"><div class="desFournisseur">$desFournisseur</div></a></li>';
    $return .= '</ul>';
     
    echo "document.getElementById('fournisseur_update').style.display='';document.getElementById('fournisseur_update').innerHTML='$return';";
    Et du coup la plus rien ne fonctionne.

    Merci d'avance

  6. #6
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Les variables ne sont pas interpretés dans les '

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $return .= '<a href="#"><div class="desFournisseur">' . $designationFournisseur. '</div></a></li>';

  7. #7
    Membre régulier
    Inscrit en
    Octobre 2004
    Messages
    277
    Détails du profil
    Informations forums :
    Inscription : Octobre 2004
    Messages : 277
    Points : 76
    Points
    76
    Par défaut
    Merci, ça fonctionne.

    Bisous

  8. #8
    Membre régulier
    Inscrit en
    Octobre 2004
    Messages
    277
    Détails du profil
    Informations forums :
    Inscription : Octobre 2004
    Messages : 277
    Points : 76
    Points
    76
    Par défaut
    Arf, j'ai encore un souci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    $designationFournisseur = htmlspecialchars("blabla & bleble");
    $desFournisseur =  str_replace("'","\'",$designationFournisseur);
     
    $return .= '<li class="nFournisseur" id="nFournisseur" onclick="javascript:html_requete(\'requetes_ajax/requete_fournisseur_PPHA.php?fournisseur='.$desFournisseur.'\');" >';
    $return .= '<a href="#"><div class="desFournisseur">'.$designationFournisseur.'</div></a></li>';		
     
    $return .= '</ul>';
     
    echo "document.getElementById('fournisseur_update').style.display='';document.getElementById('fournisseur_update').innerHTML=$return;";
    Voilà j'ai un souci avec le &, dans mon lien il considere que le & sépare 2 parametre alors qu'il n'y en a qu'un seul et qu'il fait parti du nom du fournisseur.

    Merci d'avance.

  9. #9
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    tu peux utiliser urlencode pour passer ta chaine dans l'url

    Attention tu appliques htmlspecialchars à $designationFournisseur sur la deuxieme ligne alors qu'il a deja été htmlspecialcharsisé.

  10. #10
    Membre régulier
    Inscrit en
    Octobre 2004
    Messages
    277
    Détails du profil
    Informations forums :
    Inscription : Octobre 2004
    Messages : 277
    Points : 76
    Points
    76
    Par défaut
    J'utilise de l'Ajax, ajax.js :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
     
    function html_requete(url_requete)
    {	
    		var nb_aleatoire= Math.round(Math.random()*10000); 
    		eval ('var object'+nb_aleatoire+'=null;')
    		//document.getElementById('chargement').style.display='';
    		if(window.XMLHttpRequest){ // Firefox 
    			eval("object"+nb_aleatoire+ " = new XMLHttpRequest();"); 
    			 if ("object"+nb_aleatoire+".overrideMimeType") {
    					"object"+nb_aleatoire+".overrideMimeType('text/html; charset=ISO-8859-15')"; 
    			}
    		}else if(window.ActiveXObject){ // Internet Explorer 
    			eval("object"+nb_aleatoire+ " = new ActiveXObject('Microsoft.XMLHTTP');"); 
    		}else { // XMLHttpRequest non supporté par le navigateur 
    			alert('Votre navigateur ne supporte pas les objets XMLHTTPRequest...');
    		}
     
     
     
    		eval("object"+nb_aleatoire+".open('GET' , url_requete, true);");
    		eval("object"+nb_aleatoire+".setRequestHeader('Content-type', 'application/x-www-form-urlencoded');");
    		eval("object"+nb_aleatoire+".setRequestHeader('Connection', 'close');");
     
     
    		eval("object"+nb_aleatoire+".send(null);");
    		eval("object"+nb_aleatoire+".onreadystatechange=function(){if (object"+nb_aleatoire+".readyState==4){	eval(object"+nb_aleatoire+".responseText);}}");
    }
    Mais je ne vois pas le souci, ce n'est pas dans ajax.js mais bien dans mon code php.

    Merci d'avance

  11. #11
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Heu on a changé de sujet ?

  12. #12
    Membre régulier
    Inscrit en
    Octobre 2004
    Messages
    277
    Détails du profil
    Informations forums :
    Inscription : Octobre 2004
    Messages : 277
    Points : 76
    Points
    76
    Par défaut
    Je ne comprend pas pourquoi on a changer de sujet alors que j'en sur que c'est à cause de php et non de javascript

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [PHP/SQL] Problème d'insertion d'image dans SQL SERVEUR
    Par Joelatack dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 24/07/2009, 14h28
  2. Réponses: 1
    Dernier message: 20/03/2009, 09h47
  3. Réponses: 3
    Dernier message: 06/06/2007, 15h21
  4. [PHP-JS] problème avec la balise href dans php
    Par metrax dans le forum Langage
    Réponses: 5
    Dernier message: 02/05/2007, 10h06
  5. [PHP-JS] Problème de Quote
    Par Cyrilh7 dans le forum Langage
    Réponses: 19
    Dernier message: 08/08/2006, 16h57

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo