【发布时间】:2016-11-23 07:23:06
【问题描述】:
** 更新 ** 我让脚本可以工作,但我也希望可以选择删除产品...
这是我现在的代码:
<?php
session_start();
if (!array_key_exists('products', $_SESSION) || !is_array($_SESSION['products'])) {
$_SESSION['products'] = [];
}
$productName = array_key_exists('productName', $_POST) ? (string) $_POST['productName'] : '';
if ($productName) {
$_SESSION['products'][] = $productName;
}
?>
<h4>Saved Items</h4>
<?php foreach ($_SESSION['products'] as $product): ?>
<div class="echo-product"><i style="color:#F60;padding-right:20px;" class="fa fa-anchor" aria-hidden="true"></i><?php echo htmlspecialchars($product); ?></div>
<?php endforeach;?>
<div class="btn-01"><p>Offerte aanvragen</p></div>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.4/jquery.min.js"></script>
<script>
$(function(){ // $(document).ready shorthand
$('.btn-01').hide().fadeIn(1000);
});
</script>
好的,让我解释一下。在我的网站上,我有一个购物车之类的东西。客户选择一艘船,并假设(在本例中)船型和可选项目。
完成此操作后,将剩下几个选项。
访问者现在可以通过单击“保存此选项”来选择“保存”船只和选项。然后将此选项保存在会话中,代码如下:
<?php
// Set session variables
$_SESSION["boat"][] = get_the_title();
?>
并使用此代码回显:
<?php if(isset($_SESSION['boat'])){
echo implode("<br />", array_unique($_SESSION['boat']));
} ?>
这是第一个问题:
只有当我保存第一艘船选项(有 3 个(A,B,C)),然后它说(如果我回显它)选择船 A 时,此代码才能正常工作。但是当我保存第三艘船时说“船 A、B 和 C”已保存。它不会跳过 B 船。我不知道为什么会这样。有人知道吗?以及如何解决这个问题?
好的,第二个问题。相同的代码。我怎样才能使保存的选项在div #saved-options 中可见,就像添加商品的购物车一样,如果它们也可以被删除,那就太好了。
如果我使用此代码:
<div class="col-sm-2">
<div id="saved-boats">
<h4>Saved boats</h4>
<?php if(isset($_SESSION['boat'])){
echo implode("<br />", array_unique($_SESSION['boat']));
} ?>
</div>
那么所有的船都已经被保存了。我可以使用以下代码销毁会话:
<div class="col-sm-2">
<div class="saved-boats">
<h4>Saved boats</h4>
<?php
// remove all session variables
session_unset();
// destroy the session
session_destroy();
?>
<?php if(isset($_SESSION['boat'])){
echo implode("<br />", array_unique($_SESSION['boat']));
} ?>
</div>
然后我就可以了,有问题 1 但没问题,但我仍然无法自动更新 div #saved-boats。
有没有人可以帮助我解决这些问题?提前致谢。
【问题讨论】:
-
你需要在会话中创建数组。更新时首先从会话中获取该数组,然后对其进行更新,然后将其保存回该会话。
-
使用此代码:
<?php // Set session variables $_SESSION["boat"][] = get_the_title(); ?>有人告诉我我正在制作一个数组? @RonakP -
是的,所以按照我说的去做。获取数组,更新并重新保存
-
你知道怎么做吗?我对这些东西有点陌生。我更喜欢 HTML、CSS 等等,然后是 PHP。 @RonakP
-
yes steggie,这是因为我们不能直接更新到会话数组,我们只能改变会话变量的值。所以我认为这最好重新保存到会话中。
标签: php jquery wordpress session