【问题标题】:Prevent page from refreshing on button submit in php防止页面刷新按钮提交在php
【发布时间】:2016-06-16 17:08:47
【问题描述】:

我在 Dreamweaver cs5 中工作,这意味着 php 是自动创建的。我知道一些 php,但是当我单击提交按钮时,我想不出一种方法来防止页面重新加载。我不希望它刷新,因为我正在制作一个聊天服务,刷新变得烦人。 向mysql数据库发送信息的php:

$editFormAction = $_SERVER['PHP_SELF'];
if (isset($_SERVER['QUERY_STRING'])) {
$editFormAction .= "?" . htmlentities($_SERVER['QUERY_STRING']);
}

if ((isset($_POST["MM_insert"])) && ($_POST["MM_insert"] == "send")) {
$insertSQL = sprintf("INSERT INTO chat (chat_info, person_id, chat) VALUES (%s, %s, %s)",
                   GetSQLValueString($_POST['chatid'], "text"),
                   GetSQLValueString($_POST['personid'], "text"),
                   GetSQLValueString($_POST['chat'], "text"));

mysql_select_db($database_LVGSChat, $LVGSChat);
$Result1 = mysql_query($insertSQL, $LVGSChat) or die(mysql_error());
}

HTML格式:

<form method="POST" action="<?php echo $editFormAction; ?>" name="send" id="send">
    <input name="chat" type="text" id="sendtext" placeholder="Skriv en melding..." />
    <input type="button" id="sendbutton" value="" name="submit"/> 
    <input type="hidden" value="<?php do { ?><?php
    if (strtolower($row_medlemmer['brukernavn']) == strtolower($_SESSION['MM_Username']) ) {
        echo $row_medlemmer['medlemmer_id'];}
    ?><?php } while ($row_medlemmer = mysql_fetch_assoc($medlemmer)); ?>" name="personid" />

    <input type="hidden" value="3" name="chatid" />
    <input type="hidden" name="MM_insert" value="send" />
</form> 

我尝试将类型从提交更改为按钮,但它只是停止了整个脚本。

【问题讨论】:

  • 那就用ajax吧。
  • @nicael 我没有使用 ajax 的经验......你有没有机会展示我如何在这个脚本中实现 ajax? :P
  • @ReinBentdal 看到我的回答,我已经包含了一些链接。

标签: php html mysql chat


【解决方案1】:

这是一个常见问题,可以通过使用 jQuery 来解决。您要做的是提交 AJAX 表单。如果你不熟悉 jQuery,here is a jquery getting started guide.

一旦您将 jQuery 脚本添加到文档的头部/尾部,您就可以进行 AJAX 表单提交。为了不重新散列信息,check out this tutorial from scotch.io on AJAX Form submits。该教程将为您一一解析。

您要查找的主要内容是在单击按钮时在 javascript 中调用 preventDefault(),因此我会仔细阅读。

【讨论】:

    【解决方案2】:

    防止页面刷新的两种方法。

    1) 放 javascript:;在形式行动。 2)使用javascript或jquery并使用ajax传递数据。我正在分享 jQuery 示例代码。

      $("formID").on("click",function(e){
          e.preventDefault();
        ----another code to send data with ajax---
      });
    

    【讨论】:

    • 非常感谢您的帮助!但我不太明白你的意思。这段代码应该在文档中的什么位置以及应该如何使用?我几乎没有使用 javascript 的经验:P
    • 您可以创建一个以 custom.js 或任何名称命名的文件,然后将该文件包含在页脚中。就是这样。您可以在该文件中添加站点的 js 代码。
    猜你喜欢
    • 2019-02-09
    • 1970-01-01
    • 2012-09-14
    • 1970-01-01
    • 1970-01-01
    • 2020-10-06
    • 2020-06-29
    • 2016-01-18
    • 1970-01-01
    相关资源
    最近更新 更多