сохранение идентификатора базы данных для модального, так что последующие изменения в модальном обновятся - PullRequest
0 голосов
/ 16 сентября 2018

В настоящее время у меня есть страница с несколькими модалами (в моем примере только один), но в основном пользователь заходит на эту страницу и нажимает на элемент div, который вызывает модал с редактором tinyMCE, они создают контент и нажимают кнопку Отправить.который закрывает модальное и отправляет ajax-вызов для создания записи для контента.

Это прекрасно работает.

Проблема в том, что если пользователь снова нажимает div, он вызывает модальноес их недавно созданным контентом для редактирования.Они вносят изменения, но отправка просто создает новую запись, что не то, что я хочу.Мне нужно сделать так, чтобы, если они снова щелкают по элементу div, вызывая модальный режим, когда они нажимают кнопку submit, он просто обновляет запись контента.

Я знаю, что мог бы сделать это, вероятно, с предложением дублирующего ключа, ноЯ не уверен, как поступить с модалом.

Скажем, пользователь нажимает на первый div, который имеет #leftHalfForm и создает некоторый контент, а затем отправляет.Это делает запись контента с идентификатором 182.

Теперь, когда они снова щелкают по левому диву модом #leftHalfForm, мне нужно знать во всплывающем окне модала, что он содержит данные дляcontent_id 182.

Модал с формой:

<div class="modal fade bd-example-modal-lg" id="leftFiftyModal" tabindex="-1" role="dialog" aria-labelledby="leftFiftyLabel" aria-hidden="true">
<div class="modal-dialog modal-lg" role="document">
    <div class="modal-content">
        <div class="modal-header">
          <button type="button" class="close" data-dismiss="modal" aria-label="Close">
            <span aria-hidden="true">&times;</span>
          </button>
        </div>
        <div class="modal-body">
            <?php include 'widgets.php'; ?>         
            <hr>
            <h3>Create your own content</h3>
            <form id="leftHalfForm" method="post">
              <input type="hidden" name="page_content" id="leftHalfPageContent" value="">
              <input type="hidden" name="panel_type" value="2">
              <input type="hidden" id="page_id" name="page_id">
              <textarea class="original" id="leftHalfTextArea" name="halfLeftText"></textarea>
              <input type="submit" value="Save Content">
            </form>
        </div>
        <div class="modal-footer">
        </div>
   </div>
</div>
</div>

Это мои JS и AJAX, которые появляются после того, как они сделали некоторый контент и отправили:

<script type="text/javascript">

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

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

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

      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;

});

</script>

Ajax отправляет данные в этот скрипт, который вставляет содержимое, получает идентификатор этой записи содержимого и затем создает запись панели, содержащую этот идентификатор содержимого (это делается для создания записи для содержимого И записи панели, содержащей его. Для последующегощелчки, мне нужно только обновить запись содержимого):

$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');
";
// $mysqlConn->query($addPanel);

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

Это все работает отлично, но как я могу изменить это так, чтобы каждый раз, когда они нажимают на этот модал для редактирования, он всегда содержит идентификатор для этогозапись содержимого?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...