插入后检索记录ID

时间:2014-02-06 00:00:24

标签: php jquery mysql ajax

不可否认,我在这里有点不合时宜,但无论如何都要尝试这个项目。

背景
我正在开发一个页面,允许我的用户将数据输入数据库。数据库有多个表,可以插入和更新数据。用户采取的第一个操作是从下拉列表中选择一个选项,然后单击“创建”。单击“创建”按钮将在我的一个表中创建记录。此外,点击“创建”后,将显示更大的表格。一旦更大的表单完成,用户就可以“保存”他们的工作。我打算使用更新查询来允许用户保存他们的工作。
问题:
我使用ajax发布数据(参见下面的示例),我基本上想要将记录ID(主要KEY)返回到页面,以便当访问者保存附加信息时,数据库知道要更新的记录。

//脚本

$(function(){
  $('#create').click(function(event) {
     event.preventDefault();


    $.ajax({
       type: "POST",
       url: "url",
       data: {"optimizationtype": $("#optimizationtype").val()},

       success: function(results){
        $("#mvt-experimentdetails").css("display", "inline-block");
        $("#create").attr('value', 'Save');
        $("#create").attr('id', 'save');


       }
     });

  });

});

// php包括

$expid = mysqli_insert_id($con);


我知道我想在ajax的成功区域归还它,但我不确定该怎么做...任何帮助都会非常感激。

1 个答案:

答案 0 :(得分:0)

在PHP方面,运行插入后,您将要执行last_insert_id并回显它。

例如(使用PDO和伪代码):

insert into table values (x,y)
$id = $db->lastInsertId();
echo $id;

在客户端,让我推荐$ .post而不是$ .ajax - 我发现它更容易使用。但是,这两种理论都是一样的。

$.post('url', {
        data-key: data-value,
        next-data-key: next-data-value
    }, 
    //now for the callback
    function (recordID) {
       //do something with recordID
        alert(recordID);
});