Как открыть определенный модал после отправки формы и перенаправления местоположения - PullRequest
0 голосов
/ 21 февраля 2019

У меня есть форма внутри модального окна, и когда она отправляется, я не хочу, чтобы она закрывалась.Они установили, что моя инструкция SQL UPDATE настроена так, что она будет перенаправлена ​​на ту же страницу, если база данных обновлена, так что при попытке сохранить модальный портится много вещей.

if (isset($_POST['insert6']))
{
    $kval_antall = $_POST['kval_antall'];
    $id = $_POST['id'];

    $sql6 = ("UPDATE test3 SET kval_antall='$kval_antall' WHERE id='$id'");


    if (mysqli_query($conn, $sql6)) {
    header("Location: aktivbonus.php");
    exit;
} else {
    echo "Error: " . $sql6 . "<br>" . mysqli_error($conn);
}}

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

Вот кое-что из того, что я пробовал: (Ответ от епископа) Как перенаправить обратно на страницу индекса и отобразить модальное всплывающее окно в соответствии с перенаправлением?PHP

Код работает и прекрасно отображает сообщение после того, как форма была отправлена ​​и перенаправлена ​​обратно, но когда я вставляю это ничего не происходит:

<?php if (isset($_GET['thanks']) && 1 == $_GET['thanks']) { ?>
<script type='text/javascript'>
   $("#message539").modal("show");
</script>
<?php } ?>

То, как я получил мойРабота веб-сайта заключается в том, что на странице появляется кнопка с data-target="#message539" <- изменениями идентификатора, в зависимости от того, какую кнопку вы нажимаете. </p>

То же самое с модалом, который пытается вызвать (То же самое здесь с изменением идентификатора):

<div class="modal fade bd-example-modal-lg" id="message'. $row['id'] .'" tabindex="-1" role="dialog" aria-labelledby="exampleModalLabel" aria-hidden="true">

В этом изменении модальный # message539, я пытаюсь позвонить.Если у кого-то есть хороший способ сделать это, помощь очень ценится, потому что сейчас я теряюсь, пытаясь делать много разных вещей.

Я старался изо всех сил объяснять, чего я хочу, и это может быть трудно понятьПоэтому, пожалуйста, спросите, если что-то неясно.Спасибо.

Модальные

<?php
    while ($row = mysqli_fetch_assoc($result)) {
        $test55 = '<div class="card card-date"><div class="card-body card-body-date text-secondary"><h5>' . strftime('%e.%B',strtotime($row['date'])) . ' <div class="card-header-date"><i class="material-icons">arrow_downward</i></div></h5></div></div>';
        echo $test55 !== $prevDate ? $test55.'' : '';
        $prevDate = $test55;
        echo '
        <div class="card border-info card-margin">
            <h5 class="card-header text-secondary">
                '. $row['bookmaker']. ': '. $row['bettype']. ' '. $row['betvalue']. 'kr <div class="card-header-date">Dato lagt til: Kl.'. strftime('%H:%M, %e.%b',strtotime($row['date2'])) . '</div>
            </h5>
            <div class="card-body text-secondary">
                <h5 class="card-title">Status:</h5>
                <p class="card-text">' . $row ['status'] . '</p>
                </div>
            <div class="card-footer bg-transparent"><div class="text-right"><button type="button" class="btn btn-outline-info" data-toggle="modal" data-target="#message'.$row['id'].'">Endre</button></div></div>   <-- BUTTON THAT OPENS THE MODAL
            </div>
        </div>
        <div class="modal fade bd-example-modal-lg" id="message'. $row['id'] .'" tabindex="-1" role="dialog" aria-labelledby="exampleModalLabel" aria-hidden="true"> <--- MODAL
          <div class="modal-dialog modal-lg" role="document">
              <div class="modal-content">
                <div class="modal-header card-header">
                  <h5 class="modal-title text-secondary" id="exampleModalLabel">'.$row['bookmaker'].': '.$row['bettype'].' '.$row['betvalue'].'kr</h5><div class="text-secondary" style="font-size: 1.25rem;font-weight: 500;">Dato lagt til: '.strftime('%H:%M, %e.%b',strtotime($row['date2'])).'</div>
                </div>
                <div class="modal-body">

Ответы [ 2 ]

0 голосов
/ 21 февраля 2019

используйте для этого javascript или jQuery: отправьте флаг успеха при перенаправлении и проверьте этот флаг на перенаправленной странице, если он имеет значение true, чем режим отображения с помощью jQuery,

например: (просмотреть страницу)

$flag = $flag?1:0;
<button id="btn-modal-open" style="display:none">clcik</button>

и в функции jQuery

$( document ).ready(function() {
var flag = "<?= $flag?>";
if(flag){
$('#btn-modal-open')[0].click(); //create one
//button and give id as btn-modal-open so that on 
//click of button modal should popup
  }
});

нужно больше объяснений, чем сказать мне

0 голосов
/ 21 февраля 2019

Вы можете использовать localStorage, чтобы отслеживать, нужно ли вам открывать модальное окно при открытии страницы перенаправления:

При вызове функции обновления:

localStorage.setItem('openModal', '#message539'); // Use message'. $row['id'] to dinamically save it

При загрузкестраница:

 var modalId = localStorage.getItem('openModal');
 if (modalId != null){
  $(modalId).modal("show");
  localStorage.removeItem('openModal');
 }
...