【发布时间】:2016-12-16 21:41:56
【问题描述】:
我编写了一个代码,我必须在整个应用程序中维护最后插入的行 ID,而不刷新该页面具有分步表单的页面,而无需重新加载页面。我已经为此编写了代码,但是最后一秒插入的 id 不是最后插入的 id。这里第一次插入是通过 jquery ajax 调用发生的,其中将在该文件中的 ajax 中调用一个文件,该文件存储会话变量。我的代码如下:
<form class="" id="myFOrm" method="post" id="my_form_id" >
<input type="hidden" id="user_id" name="user_id" value="<?php echo $fet['id']; ?>">
<div class="form-group">
<input type='text' name=''>
</div>
<div class="form-group">
<input type='text' name=''>
</div>
<a onclick="return submitFunction('1', '2')" >Submit</a>
我的js代码是:
function submitFunction(current, next) {
var data = new FormData($('#myFOrm')[0]);/
$.ajax({
type:"POST",
url:"insert.php",
data:data,
contentType: false,
cache: false,
processData: false,
async:false,
dataType: 'json',
success:function(response)
{
alert(response);
}
}
插入.php
<?php
session_start();
$sql = "INSERT INTO table_name(col1,col2,col3,col4)
VALUES ('".$val1."','".$val2."', '".$val3."', '".$val4."')";
if ($conn->query($sql) === TRUE)
{
$my_id = mysqli_insert_id($conn);
unset($_SESSION['my_id']);
$_SESSION['my_id'] = $my_id;
echo $_SESSION['my_id'];
}
else {
echo "Error: " . $sql . "<br>" . $conn->error;
}
我需要该会话值的下一个表单是:
<form id="myFOrm1" class="form-label-left" method="post" id="my_form_id">
<input type="hidden" id="user_id" name="user_id" value="<?php echo $fet['id']; ?>">
<input type="hidden" id="my_id" name="my_id" value="<?php echo $_SESSION['my_id']; ?>">
<div class="form-group">
<input type="text" name="field1">
</div>
<div class="form-group">
<input type="text" name="field2">
</div>
<div class="form-group">
<input type="text" name="field3">
</div>
谁能告诉我我做错了什么?提前致谢。
【问题讨论】:
-
在插入脚本运行后,它将被重定向到下一个表单,即我在上面写的需要会话 ID 的最后一个表单。我的要求是在用户登录后,他被重定向到仪表板页面,那里总共有 7 个步骤,在第 1 步中完成的插入是我首先编写的表单(上图)。无需通过 ajax 调用刷新页面即可执行所有 7 个步骤。
-
我会告诉你这个故事。首先,正如我所说,总共有 7 个步骤。每一步都有一个数据库后端表,在第 1 步中,我将数据插入到表 1 中,然后我将获得一个自动增量。该表中的 id 我想将该 id 存储在会话中,因为由于我的应用程序基于 step-1 表 ID,所有进一步的步骤都将运行(我们的整个应用程序运行)。我想为此使用会话,你能建议如何维护这样的信息吗?或者还有其他方法吗?
标签: php session session-variables