2013-08-04 30 views
0

你好,我正在考慮爲我的網站做一個留言箱。我不想使用任何其他人,因爲它不適合我預先存在的成員數據庫。我想到了一些想法,但我不確定是否有更好的方法來做到這一點。我想提交表單並且沒有'GET'發送喊話。我也無法重新加載頁面。這就是AJAX進來:對網絡留言箱的想法

我認爲是在我的網頁設置的形式爲:

<form method="post" onsubmit="return sendShout()" > 
    <input type="text" name="Shout" id="Shout" /> 
</form> 

隨着我的javascript是以下幾點:

<script> 
    function sendShout() 
    { 
    if(ShoutTime == 0) 
    { 
     var http = new XMLHttpRequest(); 
     http.open("GET", location.href+"?shout="+encodeURIComponent(document.getElementById("Shout").value)+"&name="+encodeURIComponent(document.getElementById("username").value), true); 
     http.send(); 
     ShoutTime = <?php echo $shoutWait;?>+1; 
     ShoutWait(); 
     unidle(); 
     document.getElementById("Shout").value=''; 
    } 
    else 
    { 
     ShoutWaitNote(); 
     getLogs(); 
    } 
    return false; 
    } 
</script> 

那麼頁我可以在放入數據庫像$ _GET ['喊'] ...等

現在有沒有更好的方法來使用ajax發送呼喊到MySQL數據庫沒有作爲一個GET呼喊在URL?

+0

爲什麼你不想使用GET? –

+0

POST方法是首選。你並不是想要獲取一些你想獲取的數據,而是想將一些數據發佈到服務器上。 – FakeRainBrigand

+0

,因爲在主頁上,如果用戶添加'#'到網址,那麼這個留言箱會自動進入(因爲?shout =不在那裏)。 – MysteryDev

回答

1

我懷疑有手頭這裏更大的問題,但你可以做一個POST使用XMLHttpRequest像這樣:

var http = new XMLHttpRequest(); 
http.open("POST", location.href); 
http.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); 
http.send("shout=something&name=something"); 

而不是在GET版本:

var http = new XMLHttpRequest(); 
http.open("GET", location.href + "?shout=something&name=something"); 
http.send(); 

你會想在這兩種情況下應用URL編碼。祝你好運。

+1

我所需要的! :) – MysteryDev