我有一个ajax调用,该调用成功调用了一个php文件,该文件将插入数据并返回该插入的ID,但是我在弄清楚如何将其保存在我的主template.php文件(其中的ajax代码为),并将其保留在那里,以便在需要ID的其他调用中进行mysql插入/更新。
templates.php
approval.rb
class Approval < ApplicationRecord
belongs_to :job_application
validates_acceptance_of :operator_approval, :allow_nil => false,
end
addPage.php
<script type="text/javascript">
$(document).ready(function(){
$("#submitForm").click(function(){
event.preventDefault();
var string = $('#pageForm').serialize();
// AJAX Code To Submit Form.
$.ajax({
type: "POST",
url: "addPage.php",
data: string,
cache: false,
success: function(response){
console.log(JSON.stringify(response));
$('#my_modal').modal('hide');
$('.modal-backdrop').remove();
}
});
});
});
</script>
因此,当我这样做时,控制台日志将显示:$addpage = "
INSERT INTO pages (title, page_type_id, display_id, duration)
VALUES ('$title','$page_type','$display_id','$duration');
";
if ($mysqlConn->query($addpage) === TRUE) {
$last_id = $mysqlConn->insert_id;
$data['last_insert_id'] = $last_id;
echo json_encode($data);
} else {
echo "Error: " . $addpage . "<br>" . $mysqlConn->error;
}
如何保存此ID以在页面中的其他呼叫中使用?例如,我有另一个ajax调用:
"{\"last_insert_id\":67}"
它调用:
addPanel.php
var string = $('#form-data').serialize();
$.ajax({
type: "POST",
url: "addPanel.php",
data: string,
cache: false,
success: function(response){
console.log(JSON.stringify(response));
}
});
但是我想更改插入语句,以使用先前返回的“ last_insert_id”作为$ page_id,如下所示:
$panelID = $_POST['panel_type'];
$addPanel = "
INSERT panels(panel_type_id, cont_id)
VALUES ('$panelID', '$cont_id');
";
if ($mysqlConn->query($addPanel) === TRUE) {
echo "New record created successfully";
} else {
echo "Error: " . $addPanel . "<br>" . $mysqlConn->error;
}
答案 0 :(得分:1)
将其存储为隐藏输入,并发送到下一个AJAX调用中:
<input type="hidden" id="page_id" name="page_id">
代码如下:
$(document).ready(function() {
$("#submitForm").click(function() {
event.preventDefault();
var string = $('#pageForm').serialize();
// AJAX Code To Submit Form.
$.ajax({
type: "POST",
url: "addPage.php",
data: string,
cache: false,
success: function(response) {
$("#page_id").val(response.last_insert_id);
$('#my_modal').modal('hide');
$('.modal-backdrop').remove();
}
});
});
在addPanel.php
中,您可以从$_POST['page_id']
获得它。
请注意,来自客户端的任何东西都是可疑的。如果您不希望用户更改此设置,最好将其保存在PHP的会话变量中,而不要依赖客户端将其发送回去。但是,如果客户实际上可以在任何页面上添加面板,而这只是为了方便起见,因此他们不必输入页面ID,则此方法应该没问题。