在 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()
,因此我会仔细阅读。
我在 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()
,因此我会仔细阅读。