我有这个基本的HTML页面,并且有一种将数据上传到MySQL数据库的表单。使用JS在MySQL数据库中插入数据
还有一个JavaScript将数据传递给process.php
文件。在这个文件中,我有一个INSERT
查询。我使用这个脚本是因为我不想在提交时重新加载页面。
现在我有2个问题:
1)当我把数据发送到MySQL表(点击提交按钮),在第一时间1数据= 1个记录插入,这是正确的。如果我在输入表单字段中插入新数据,我有1数据= 2记录相等。第三次,3记录等等......
但是,如果我打印什么POST
通过print_r($_POST)
,我总是有一个数据Array ([comune] => foo)
。
我也试图用unset()
没有成功。
2)当我点击第一次提交按钮时,没有任何操作,我必须点击两次。
这是JS脚本的HTML页面:
<!DOCTYPE html>
<html lang="en">
<head>
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
<meta charset="utf-8" />
<link href="http://netdna.bootstrapcdn.com/bootstrap/3.1.0/css/bootstrap.min.css" rel="stylesheet">
<script type="text/javascript" src="http://code.jquery.com/jquery-1.7.1.min.js"></script>
<script type="text/javascript" src="http://ajax.microsoft.com/ajax/jquery.validate/1.7/jquery.validate.min.js"></script>
<script type="text/javascript">
$(document).ready(function(){
$(".formValidation").validate({
debug: false,
rules: {
name: "required",
email: {
required: true,
email: true
}
},
messages: {
name: "Please let us know who you are.",
email: "A valid email will help us get in touch with you.",
},
submitHandler: function(form) {
// do other stuff for a valid form
$('.formValidation').on('submit', function() {
$.post('process.php', $(this).serialize(), function(data){
$('#results').html(data);
});
})
}
});
});
</script>
</head>
<body>
<div class="row">
<div class="col-xs-12">
<form id="myform2" class="formValidation" name="myform2" action="" method="post"></form>
<div class="col-xs-12 col-sm-4">
<div class="widget-box">
<div class="widget-body">
<div class="widget-main">
<div>
<label for="form-field-select-1">form</label>
</div>
<hr>
<div class="widget-body">
<div class="widget-main">
<div>
<input type="text" name="comune" id="comune" value="" placeholder="Add something" form="myform2">
<input type="submit" name="submit" value="Submit" class="btn btn-sm btn-success" form="myform2">
<p id="result"></p>
<div id="results"></div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<!-- /.col -->
</div>
<!-- /.row -->
</body>
</html>
和process.php
foreach($_POST as $key => $value) {
$sql = "INSERT INTO tbl_".$key."(nome_".$key.") VALUES ('$value')";
$result = dbQuery($sql);
unset($key);
unset($value);
}
让人惊讶 - 你所要求的一个严重的SQL injectionattack! –
这是只为测试目的 – Ogum