在 php 中防止页面在按钮提交时刷新

Prevent page from refreshing on button submit in php

我在 Dreamweaver cs5 中工作,这意味着 php 是自动创建的。我知道一些 php 但我想不出一种方法来防止在我单击提交按钮时重新加载页面。我不想让它刷新,因为我正在做一个聊天服务,刷新只会让人讨厌。 Php 将信息发送到 mysql 数据库:

$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> 

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

两种防止页面刷新的方法

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

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

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

将 jQuery 脚本添加到文档的 head/foot 后,您就可以执行 AJAX 表单提交。为了不重复信息,check out this tutorial from scotch.io on AJAX Form submits。该教程将为您详细介绍。

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