我在模态中有一个表单,提交后我不希望它关闭。他们以这种方式设置了我的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);
}}
因为如果我之前放置一些代码并保持模式打开,则如果数据库中的数据成功更新,它将返回同一页面并仍然关闭模式。重定向后,我找不到打开模式的方法。
这是我尝试过的一些东西:(来自主教的答案) How to redirect back to index page and display modal pop up as per redirecting? PHP
在提交表单并将其重定向回后,代码可以正常工作并完美显示消息,但是当我插入时,什么也没发生:
<?php if (isset($_GET['thanks']) && 1 == $_GET['thanks']) { ?>
<script type='text/javascript'>
$("#message539").modal("show");
</script>
<?php } ?>
我可以正常使用网站的方法是,页面上出现一个data-target="#message539"
<-id更改的按钮,具体取决于您按哪个按钮。
与尝试调用的模式相同(此处ID更改相同):
<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">
答案 0 :(得分:1)
在进入重定向页面时,可以使用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');
}
答案 1 :(得分:0)
使用javascript或jQuery这样做: 发送重定向时成功的标志,并检查重定向页面上的该标志是否比使用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
}
});
需要更多的解释而不是告诉我