2012-07-25 168 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