如何在html / php / jquery中使用引导无效的警报并更改$ _SESSION数组

时间:2018-07-22 21:17:24

标签: javascript php jquery arrays twitter-bootstrap-3

我在$ _SESSION数组上有通知: f例如。
    11 =>'1234-Client A:消息即将发送,确定:0'
    14 =>'3456-客户端B:消息即将到来,不正确:3'
阿苏。

我循环浏览这些内容,以在可忽略的引导警报中将其打印出来。 消息中的最后一个指示器正在确定要使用的警报。

当我关闭通知时,我想关闭它并用'...:9'更新$ _SESSION数组,以指示该通知已关闭,并且在下次重新加载页面时不会显示。 我将ID传递给JQuery,因为这在记录之间可能有所不同,但是如何在同一PHP页面上使用它来更改$ _SESSION数组以获取正确的记录ID?

我正在尝试使用以下代码:

invoices.php:

...
$id = $_POST["id"];
echo 'Id: ' . $id . '<br />';
...
<?php if(isset($_SESSION['UploadMessage'])) :
    foreach($_SESSION['UploadMessage'] as $key => $val):
        $pos    = strrpos($val, ":");
        $alert  = substr($val, $pos+1);
        $val = substr($val, 0, $pos);
        echo $val . ' ' . $alert . '<br />'; //'\n'
        $message = $val; ?>

        <?php if($alert == 0) : ?>
            <div class="alert alert-success alert-dismissible" id="<?=$key;?>" role="alert">
                <button type="button" class="close" data-dismiss="alert" aria-label="Close"><span aria-hidden="true" id="<?=$key;?>">&times;</span></button>
                <strong>Ok! </strong><?=$message?>
                <a href="#" class="alert-link pull-right" style="float:right,font-size=21px,font-weight:bold,line-height:1,opacity:2">X</a>
            </div>
        <?php endif; ?>
        <?php if($alert == 1) : ?>
            <div class="alert alert-info alert-dismissible" id="<?=$key;?>" role="alert">
                <button type="button" class="close" data-dismiss="alert" aria-label="Close"><span aria-hidden="true" id="<?=$key;?>">&times;</span></button>
                <strong>Info! </strong><?=$message?>
            </div>
        <?php endif; ?>
        <?php if($alert == 2) : ?>
            <div class="alert alert-warning alert-dismissible" id="<?=$key;?>" role="alert">
                <button type="button" class="close" data-dismiss="alert" aria-label="Close"><span aria-hidden="true" id="<?=$key;?>">&times;</span></button>
                <strong>Warning! </strong><?=$message?>
            </div>
        <?php endif; ?>
        <?php if($alert == 3) : ?>
            <div class="alert alert-danger alert-dismissible" id="<?=$key;?>" role="alert">
                <button type="button" class="close" data-dismiss="alert" aria-label="Close"><span aria-hidden="true" id="<?=$key;?>">&times;</span></button>
                <strong>Åtgärda! </strong><?=$message?>
            </div>
        <?php endif; ?>
    <?php endforeach; ?>
<?php endif; ?>

...

<!-- JavaScript -->
<script>
$('button.close').on('click', function (obj) {
    var id = obj.target.id;
    console.log("Close "+id);
    $.post('invoices.php', { 'id': 'id'});
});
</script>

我知道在foreach循环时PHP已经加载了文档
正在运行,但是当我点击
时如何传递array-Id的值 每个通知上的关闭按钮,并为此更改数组值?

任何人都可以帮助新手吗?

我尝试将javascript更改为此,但是它不起作用。 我在警告框中输入了正确的ID,但是重新加载页面时没有更新$ _SESSION。

    //    $.post('invoices_ajax.php', { 'id': 'id'});
$.ajax({
      type: "POST",
      url: 'invoices_ajax.php',
      data: ({id:id}),
      success: function(data) {
        alert(data);
      }
    });
});

在我的Ajax文件中,我有以下代码:

<?php

    $id=$_POST['id'];
    echo $id;

    if(isset($_SESSION['UploadMessage'])) {
        foreach($_SESSION['UploadMessage'] as $k => &$v) {
            echo $k . ' ' . $v . '<br />';
            if($k == $id) {
                $pos    = strrpos($v, ":");
                $v      = substr($v, 0, $pos).':9';
                echo $v . '<br />';
            }
        }
    }

?>

0 个答案:

没有答案