如果再次单击modal,将ajax从insert修改为update

3bygqnnd  于 2021-06-20  发布在  Mysql
关注(0)|答案(0)|浏览(217)

我已经建立了一个cms,它在div区域中使用bootstrap modals,这样当用户点击他们想要插入内容的div时,一个modal就会出现一个tinymce文本编辑器区域,在那里他们可以放置图像或文本。一旦他们有,他们点击保存按钮在模态关闭模态和显示预览他们刚刚做了什么。
另外,当他们点击save按钮时,我执行一个ajax请求,调用addpanel.php脚本,以便插入该面板、面板类型和内容的记录。
这是完美的工作除了一个事实,即如果他们再次点击模态和做这一切都编辑他们的内容,它只是保存另一个面板。
我需要稍微修改一下我现在所做的:
获取上次ajax请求中创建的面板的id,现在对内容的记录执行mysql更新(因为面板id和面板类型将保持不变)
保留当前进程,但将mysql中最后一个面板的'active'列设置为'0'(不太喜欢这种方法,但会接受它)。
基本上,我所拥有的工作,但如果用户在第一次后点击模态,我将更新,而不是插入。
下面是在addpanel.php中执行的mysql:

$content = $_POST['page_content'];

$addContent = "
    INSERT INTO content(content)
    VALUES('$content');
";

if ($mysqlConn->query($addContent) === TRUE) {
    $cont_id = $mysqlConn->insert_id;
    $data['last_insert_id'] = $cont_id;
    echo json_encode($data);
} else {
    echo "Error: " . $addContent . "<br>" . $mysqlConn->error;
}

$panelID = $_POST['panel_type'];
$pageID = $_POST['page_id'];
$addPanel = "
    INSERT INTO panels(panel_type_id, page_id, cont_id)
    VALUES ('$panelID', '$pageID', '$cont_id');
";

if ($mysqlConn->query($addPanel) === TRUE) {
    echo "New record created successfully";
} else {
    echo "Error: " . $addPanel . "<br>" . $mysqlConn->error;
}

脚本/ajax显示了我目前为一个面板所做的一个示例:

<script type="text/javascript">

$("#leftHalfForm").submit(function(e){

    var leftContentVar = tinymce.get("leftHalfTextArea").getContent();

    $(".leftContent").html(leftContentVar);
    $("#leftHalfPageContent").val(leftContentVar);

    // jQuery.noConflict();

      var string = $('#leftHalfForm').serialize() + '&page_id=' + page_id;
      console.log(string);

    // AJAX Code To Submit Form.
        $.ajax({
            type: "POST",
            url: "addPanel.php",
            data: string,
            cache: false,
            success: function(response){
              console.log(JSON.stringify(response));
              console.log(string);

              $('#leftFiftyModal').modal('hide');
              $('.modal-backdrop').remove();
            }
        });

    return false;

});

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题