2012-07-25 172 views
-1

我在我的页面上有<form>,其中包含<textarea>,我想使用Ajax发送输入的文本。文本转到PHP页面,在那里我将它插入SQL数据库。转义GET参数

我面临的问题是,无论何时我在<textarea>中编写+&,JavaScript都会将它们视为URL中的特殊字符。我怎样才能摆脱它们?

function getMessageResponse() { 
    var xmlHttp; 

    try { 
     // Firefox, Opera 8.0+, Safari 
     xmlHttp = new XMLHttpRequest(); 
    } catch(e) { 
     // Internet Explorer 
     try { 
      xmlHttp = new ActiveXObject("Msxml2.XMLHTTP"); 
     } catch(e) { 
      try { 
       xmlHttp = new ActiveXObject("Microsoft.XMLHTTP"); 
      } catch(e) { 
       alert("Your browser does not support AJAX!"); 
       return false; 
      } 
     } 
    } 

    xmlHttp.onreadystatechange = function() { 
     if(xmlHttp.readyState == 4) { 
      document.getElementById('response').innerHTML = xmlHttp.responseText; 
      document.myform.post.value = ''; 
      retrieve(); 
     } 
    } 

    var url = "wall4.php"; 
    url = url+"?post=" + document.myform.post.value; 

    xmlHttp.open("GET", url, true); 
    xmlHttp.send(null); 
} 
+0

太多的椭圆形,没有足够的问号。 – Ryan 2012-07-25 13:46:41

+1

这听起来像是你想使用POST请求,而不是GET请求。 – Ryan 2012-07-25 13:55:30

+1

亲爱的上帝!你有没有从jQuery的群体?它会照顾你所有的人。 “少写点,多做点” – Birdman 2012-07-25 13:58:12

回答

3

Encode您的参数:

url = url + "?post=" + encodeURIComponent(document.myform.post.value); 
+0

thanks @ minitech ...其实我是一个开胃菜.....我不知道太多... – 2012-07-25 14:04:18

+0

@GaganPreetSingh欢迎来到SO,如果它适合你,可能你可以[接受](http:// meta。 stackexchange.com/questions/5234/how-does-accepting-an-answer-work)它。 – Engineer 2012-07-25 14:06:32