如何在jQuery中获取数据库最后插入ID?PHP与JS交互方案
解决方法
1. 修改PHP代码(islem.php)
将原本仅返回字符串ok的逻辑,改为返回JSON格式数据,同时传递状态标识和最后插入ID,还要设置正确的响应头让前端识别格式:
if($_POST['tip']=='yizlettir'){ if(isset($_SESSION['serverOturum']) && $_SESSION['serverOturum']){ if(isset($_POST['yizTitle']) && $_POST['yizTitle']) { $yizStock = guvenlik($_POST['yizStock']); $yizEarn = guvenlik($_POST['yizEarn']); $yizLink = guvenlik($_POST['yizLink']); $yizTitle = guvenlik($_POST['yizTitle']); $yizDesc = duzenliMetin(guvenlik(mod1($_POST['yizDesc']))); $yizMin = guvenlik($_POST['yizMin']); $ok = DB::insert('INSERT INTO izlekazan (user_id,url,title,description,earning,stock,min_watchtime) VALUES (?,?,?,?,?,?,?)',array(1,$yizLink,$yizTitle,$yizDesc,$yizEarn,$yizStock,$yizMin)); $lastId = $ok->insert_id; if ($ok){ // 组装响应数据 $response = [ 'msg' => 'ok', 'last_insert_id' => $lastId ]; // 设置响应头为JSON类型 header('Content-Type: application/json'); // 输出JSON格式数据 echo json_encode($response); exit; } else { // 处理插入失败场景 $response = [ 'msg' => 'error' ]; header('Content-Type: application/json'); echo json_encode($response); exit; } } } }
2. 修改jQuery代码(server.js)
指定$.post的响应类型为JSON,直接解析返回的对象获取ID,并拼接到跳转URL中:
$('#yizSub').on('click',function() { var yizTitle = $("#yizTitle").val(); if(yizTitle.length > 1){ bekleyin(); $.post("../operation/islemmerkezi.php", { tip:"yizlettir", yizTitle:yizTitle, }, function(R) { if(R.msg === "ok"){ Swal.fire({ icon:"success", confirmButtonText: 'Tamam', title: `İşlem başarılı` }).then((result) => { if (result.isConfirmed) { // 拼接最后插入ID到跳转地址 window.location.href = '../yizlettir.php?id=' + R.last_insert_id; } }); } else { // 展示操作失败提示 Swal.fire({ icon:"error", confirmButtonText: 'Tamam', title: `İşlem başarısız` }); } }, 'json'); // 指定响应格式为JSON } });
核心说明
- PHP端通过
json_encode()将数组转为JSON字符串,配合Content-Type头确保前端正确解析。 - jQuery通过指定
'json'响应类型,自动将返回的JSON转为JS对象,直接通过属性访问获取数据。 - 补充了插入失败的处理逻辑,提升代码的健壮性。
内容的提问来源于stack exchange,提问作者Muhammet Sinan Korkut
相关产品推荐
相关产品推荐

