HTML5 Ajax JQuery PHP MySQL Insert
HTML5 Ajax JQuery PHP MySQL Insert
谁能告诉我,为什么我仍然重定向到insertInput.php后,按提交按钮。我试了很多方法,但是都没有用,比如把"submit"改成"button"等等。
HTML:<!DOCTYPE html>
<html>
<head>
<title>Barocker's Song Voting</title>
<link href="vote.css" type="text/css" rel="stylesheet">
<script src="jquery-1.11.0.min.js" type="text/javascript"></script>
<script type="text/javascript">
$(document).ready(function(){
$("#insert").click(function(){
var url = "insertInput.php";
var data = $("#form :input").serializeArray();
alert("Button clicked");
$.post(
url,
data,
function(info){
$("#result").html(info);
}
);
clearInput();
});
function clearInput(){
$("#form :input").each(function(){
$(this).val("");
});
}
});
</script>
</head>
<body>
<div id="insertBanner">
<form id="form" action="javascript:void(0);" method="post">
<input type="text" id="title" name="title" style="width: 300px;" placeholder="Titel" autofocus required>
<input type="url" id="url" name="url" style="width: 300px;" placeholder="Link (Youtube, etc.)">
<button id="insert">Hinzufügen</button>
</form>
<span id="result"></span>
</div>
</body>
</html>
PHP:
/*
* Connect to MySQL
*/
$con = mysqli_connect("localhost", "@", "", "test");
/*
* Check Connection
*/
if (mysqli_connect_errno()){
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
$title = $_POST['title'];
$url = $_POST['url'];
$sql = "INSERT INTO barocker (title, url) VALUES ('" . $title . "', '" . $url . "')";
if (!mysqli_query($con,$sql)){
echo "Error";
} else {
echo "Success";
}
/*
* Close Connection
*/
mysqli_close($con);
?>
谢谢大家。任何帮助都是非常感谢的。
你需要#insert点击禁用
$("#insert").click(function(){
return false;
});
问题是您正在为提交一个表单分配两个事件。在HTML中,有一个action
。在Javascript中,有一个onClick
。避免这种情况的一种方法是,像这样禁用action
:
<form id="form" action="javascript:void(0);" method="post">
在PHP代码中,您将在以下部分获得$("#form").attr('action')
的脚本名称:
:
$("#submit").click(function(){
$.post(
$("#form").attr('action'),
data,function(info){
$("#result").html(info);
});
clearInput();
});
现在在action
中没有一个有效值,这需要改变,例如:
:
$("#insert").click(function(){
var url = "insertInput.php";
$.post(
url,
data,function(info){
$("#result").html(info);
});
clearInput();
});
试试这个:
$("#submit").click(function(e){
e.preventDefault();
var data = $("#form :input").serializeArray();
$.post(
$("#form").attr('action'),
data,
function(info){
$("#result").html(info);
}
);
clearInput();
});
e.preventDefault();
此指令阻止默认操作
相关文章:
- 使用jquery将mysql数据获取到新的表行中
- 将地理编码结果转换为php变量以发布到mysql数据库
- 如何使用JS禁用表行,并在MYSQL中插入所选选项
- 从MySQL数据库中获取输入数据需要两次页面刷新
- 将一个表的id与另一个表中的user_id进行匹配,以获取mysql中的记录
- 在php和mysql中选择选项.一旦选择了选项,就列出我的sql数据库数据
- 如何使用PHP将javascript变量添加到mysql数据库中
- 将phonegap图像发布到php/mysql-图像字段从发布请求中消失
- 为什么PHP MySQL INSERT通过AJAX调用只是偶尔发生
- NodeJS中的MySQL不适用于INSERT INTO中的多个语句
- MySQL INSERT 命令正在将输入转换为不同的格式/值
- MySql数据库INSERT操作在硬盘(localhost)上有效,但在Internet上托管时无效
- 带有where子句的Insert语句不会在nodejs-mysql上运行
- PHP Mysql Insert Into不起作用,没有错误,没有数据发布到数据库,早些时候同一页面也起作用
- 从$_POST中创建mysql INSERT字符串
- node.js mysql insert id -我如何在插入查询之外暴露插入id
- 单击INSERT INTO mySQL而不更新当前页面
- Post/Insert javascript变量到mySQL数据库表-可能使用ajax &/或jquery -如何
- mysql insert with node.js
- HTML5 Ajax JQuery PHP MySQL Insert