使用jquery将记录插入mysql

时间:2012-07-20 14:45:35

标签: php jquery

我想使用包含表单的克隆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')");

修改

问题是似乎没有发布任何内容

2 个答案:

答案 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
});