我在$ _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;?>">×</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;?>">×</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;?>">×</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;?>">×</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 />';
}
}
}
?>