0

您好,我正在考虑为我的网站制作一个喊话箱。我不想使用任何其他的,因为它不适合我预先存在的成员数据库。我想到了一些想法,但我不确定是否有更好的方法。我想提交一个表格并且没有'GET'发送一个呼喊。我也无法重新加载页面。这就是 AJAX 的用武之地:p

我想在我的网页上设置表单:

<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['shout']... 等放入数据库。

现在有没有更好的方法来使用 ajax 向 mysql 数据库发送喊声,而无需在 url 中将喊声作为 GET ?

4

1 回答 1

1

我怀疑这里有更大的问题,但是您可以像这样使用 XMLHttpRequest 进行 POST:

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 编码。祝你好运。

于 2013-08-04T04:51:13.733 回答