Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/280.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/76.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 在对数据库的其他调用中使用返回的ajax ID_Php_Jquery_Mysql_Json_Ajax - Fatal编程技术网

Php 在对数据库的其他调用中使用返回的ajax ID

Php 在对数据库的其他调用中使用返回的ajax ID,php,jquery,mysql,json,ajax,Php,Jquery,Mysql,Json,Ajax,我有一个ajax调用,它成功地调用了一个php文件,该文件插入数据并返回插入的ID,但我很难确定如何将它保存在ajax代码所在的main templates.php文件中,并将其保存在那里,以便在需要ID的其他调用中的mysql插入/更新中使用 templates.php <script type="text/javascript"> $(document).ready(function(){ $("#submitForm").click(function(){ event.prev

我有一个ajax调用,它成功地调用了一个php文件,该文件插入数据并返回插入的ID,但我很难确定如何将它保存在ajax代码所在的main templates.php文件中,并将其保存在那里,以便在需要ID的其他调用中的mysql插入/更新中使用

templates.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>
它呼吁:

addPanel.php

$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;
}

以发送给下一个AJAX调用的形式将其存储为隐藏输入:

<input type="hidden" id="page_id" name="page_id">
在addPanel.php中,您可以从$u POST['page\u id']获得它


请注意,来自客户端的任何内容都是可疑的。如果您不希望用户能够更改它,那么最好将其保存在PHP中的会话变量中,而不是依赖客户端将其发送回。但是,如果客户机实际上可以向任何页面添加一个面板,并且这只是为了方便,这样他们就不必输入页面ID,那么这种方法应该可以。

您可以使用带有特定键的会话变量来标识最后插入的ID。也可以在Ajax调用中调用Ajax调用。从而将成功传递给另一个。您可以将其存储在一个全局变量中,然后在以后的调用中使用该变量。为什么不能在一个Ajax调用中完成所有操作?无论哪种方式,我都可以,但现在将它们分开的唯一原因是测试单个功能。在这种情况下,用户创建一个页面标题,从而创建一个页面记录,然后他们可以在页面上创建内容面板,但每个面板都需要引用该页面。它们使用不同的按钮来保存每个@AkintundeOlawale@Barmar我知道如何使用php实现这一点,但我对使用Ajax还不熟悉。如何将其存储为全局,以便在其他ajax调用中使用?我已经做了这些更改,现在我的控制台日志显示:未定义索引:C:\\addPanel.php中的page\u id,在第25行\n错误:\r\n\t插入panels\u type\u id,page\u id,cont\r\n\t值“2”,“70”\r\n不正确的整数值:对于第1行的“page_id”列,当返回原始值时,它似乎没有获取页面id的整数。我已更改了答案,以显示如何使用隐藏输入。这更简单,也不容易出错。我使用console.log,因为我在页面上有其他带有POST方法的表单,但是console在最初的ajax调用上显示了{\last\u insert\u id \:67},我问这个问题是因为我想看看第二个ajax调用接收到了什么。我认为问题是,即使在尝试了新的编辑之后,当我在addpage.php上执行第一个insert调用时,它返回正确的insert ID,但没有将其识别为insert的整数。我在您的最新编辑中得到了相同的错误,即它是不正确的整数值
$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;
}
INSERT panels(panel_type_id, page_id, cont_id)
  VALUES ('$panelID','$page_id', '$cont_id');
<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();
      }
    });
  });