2010-10-16 20 views
0

J'ai un champ de saisie.comment passer la valeur de l'élément d'entrée à javascript après l'avoir encodé en utilisant php

Sur appuyez sur Entrée, je joue l'action suivante

function doWork(){  
     httpObject = getHTTPObject(); 
     if (httpObject != null) { 
      link = "message.php?nick="+nickName+"&msg="+document.getElementById('msg').value; 
      httpObject.open("GET", link , true); 
      httpObject.onreadystatechange = setOutput; 
      httpObject.send(null); 
     } 
     } 

Ce que je veux est « urlencode » la valeur.

Comment dois-je faire cela?

Répondre

2

Utilisez la fonction JavaScript encodeURIComponent

link = "message.php?nick="+nickName+"&msg="+encodeURIComponent(document.getElementById('msg').value);

+0

au fichier de réception (c.-à-message.php ici), j'utilise $ _GET ['msg']. Maintenant, comment puis-je stocker la valeur décodée dans une variable PHP? Quelque chose comme, $ message = decodeURIComponent ($ _ GET ['msg']) – ptamzz

+0

Vous ne devriez pas avoir besoin de le décoder - PHP le décodera pour vous lors de l'analyse de l'URL (ou du corps de la requête, dans le cas d'un POST) et remplir les variables de requête. – cHao

+0

je ne suis pas sûr de cela. Si j'insère la chaîne variable $ _GET ['msg'] dans la base de données, n'insèrera-t-elle pas les caractères spéciaux dans le format encodé? Merci – ptamzz

1

envelopper juste la valeur de "évasion", comme dans:

link = "message.php?nick="+nickName+"&msg="+escape(document.getElementById('msg').value);