2012-07-11 5 views
1

J'ai essayé de résoudre un problème avec les apostrophes, mais n'a pas réussi. S'il vous plaît jeter un coup d'oeil dans cela et me suggérer le nécessaire.Apostrophes problème en passant en paramètre

Je récupère une valeur de la base de données qui a des apostrophes. Je passe la valeur en utilisant une variable dans une autre fonction javascript. Mais à cause de l'apostrophe, la fonction n'est pas en cours d'exécution. S'il vous plaît jeter un oeil dans le code mentionné ci-dessous.

Code PHP:

<?php 
$Id = $abc->id; 
$str = $abc->street; // output: 111 O'CG street 
?> 

HTML:

<a href="javascript:void(0)" onclick="show_details(<?php echo $Id1;?>,'<?php echo $str;?>')"> 
Display 
</a> 

j'ai essayé d'utiliser le code HTML en utilisant antislash. Mais n'a pas résolu le problème.

Code avec barre oblique inverse:

<a href="javascript:void(0)" onclick="show_details(<?php echo $Id1;?>,\"<?php echo $str;?>\")"> 
Display 
</a> 

S'il vous plaît me suggérer. Merci d'avance.

Répondre

2

Vous devez utiliser la fonction addslashes().

Comme:

<?php echo addslashes($str);?> 
+1

Et stripslashes pour l'opération inverse – Pete

0

il suffit de changer vos guillemets simples, doubles citations

onclick="show_details(<?php echo $Id1;?>,\"<?php echo $str;?>\")" 
+1

C'est une solution valable aussi ... mais si la str $ contient " C'est pourquoi je pense que c'est mieux (et universel) en utilisant addslashes(). – HBv6

+0

Ouais, vous avez un point là @PierpaoloBagnasco –

+0

Wow .. using addslashes() m'a vraiment aidé à résoudre le problème.Et c'est vraiment vrai que la variable peut ne pas avoir d'informations point de temps (signifie que la valeur de la variable sera vide). – Debashis