2016-08-03 45 views
0

我有一个工作购物车,用户可以在其中输入购物车中每件商品的数量,页面将自动刷新以确保数据保留在会话中。

我有一个下面的按钮,用户可以点击包括或排除增值税的总价格。我正在使用jQuery来做到这一点,它的工作原理。我遇到的问题是,点击按钮时,它会按照js从“包含增值税”变为“排除增值税”,但随后按钮在刷新时默认恢复为标准的“包含增值税”文本。换句话说,我还没有设法将按钮的状态存储为会话变量,或者还没有设法记住变量的新版本,或两者兼有。

这是我当前的尝试......

在表单中shop.php:

if (empty($_SESSION['VAT'])){ 
    $_SESSION['VAT'] = "Include"; 
} 
echo '<button id="togglevat" type="submit" name="vat" class="bodybutton vatbuttons includevat">'.$_SESSION['VAT'].' VAT</button>'; 

而且在cart_update.php每当形式提交了被激发,使得页面刷新(点击增值税按钮也提交了):

$_SESSION['VAT'] = $_POST['vat']; 

希望这足以继续下去。谢谢你提供的所有帮助。

+0

所以你的问题是,无论用户做什么,你的按钮在页面刷新后保持其“包括增值税”状态,对吧? – Sergeon

+0

这是对的Sergeon! –

+0

@MarkHolland注意:您的代码中存在XSS漏洞,您应该始终调用'htmlspecialchars(string)'来回收用户输入时回显给他们的消息 – Paradoxis

回答

0

您可以添加一个活动类

button.active{ 
    background: #bbb; 
    border-top: solid 2px #777; 
    border-left: solid 2px #777; 
    border-bottom:solid 2px #eaeaea; 
    border-right: solid 2px #eaeaea; 
} 

PHP

$class = ""; 
if (empty($_SESSION['VAT'])){ 
    $_SESSION['VAT'] = "Include"; 
    $class = "active"; 
} 
echo "<button id='togglevat' type='submit' name='vat' class='bodybutton vatbuttons includevat $class'>".$_SESSION['VAT']." VAT</button>"; 
+0

谢谢你的答案polamaros。这将使我能够保存按钮内的文字吗?我想我的问题或许不清楚,所以我会编辑它。我希望按钮在点击时更改为“排除增值税”,即使页面被刷新直到再次点击,该方式仍然保持这种方式 –

0

什么是$ _ POST [ '增值税']在cart_update.php价值? 如果你得到了你需要的价值,那么这是你的会话变量的问题。你可能忘了开始会议。

+0

嗨Jeram,包含在cart_update.php中,以便当提交表单时值被传递给会话变量,使它可以在shop.php刷新时使用。会议绝对开始,所以没有问题。你有什么想法?谢谢! –