我想使用包含表单的克隆div,使用此代码将记录插入数据库
$(document).ready(function() {
$("#button").click(function() {
$("<div class='newclone' id='xxx'><article><form method='post' id='aj'><input type='checkbox'><label>Firstname</label><input type='text' value='' name='firstname'><label>Secondname</label><input type='text' value='' name='secondname'><label>City</label><input type='text' value='' name='city'><input type='hidden' value='4'></article><input type='submit' value='insert' class='one'><button class='two'>Delete</button><button class='three'>Cancel</button></form></div>").appendTo('.clone-container');
});
$('.one').click(function() {
$.ajax({
type: "POST",
url: "insert.php",
data: $("#aj").serialize(),
success: function() {
alert('Inserted!');
}
});
});
});
这是php文件
$con = mysql_connect("localhost","root","");
if (!$con)
{
die('Could not connect: ' . mysql_error());
}
mysql_select_db("clone", $con);
$firstname=$_POST['firstname'];
$secondname=$_POST['secondname'];
$city=$_POST['city'];
mysql_query("INSERT INTO clone(firstname,secondname,city) VALUES ('$firstname','$secondname','$city')");
修改
问题是似乎没有发布任何内容
答案 0 :(得分:3)
分别测试每个部分。 Ajax请求是否发送了正确的数据? PHP脚本甚至可以获取数据吗? (试试echo <pre>;print_r($_POST);exit;
。)您的INSERT
查询是否正确制定?它成功了吗?
您还不确切知道您的问题是什么。首先找出问题所在。然后很容易弄清楚如何解决它。
答案 1 :(得分:1)
只有在点击$('.one')
后才会向{DOM}添加$("#button")
。因此,当$('.one').click(
运行时,$('.one')
尚不存在,因此事件未受约束。
您需要使用委托(或“直播”)活动。
$(document).on('click', '.one', function(){
// Click handler here
});