我在购物车中显示了此数量(变量名称:$ Quantidade),需要添加+和-href以使其增加/减少值。
数量: quantity
完整表格: table
数量var始终从1开始。
我所有的尝试都失败了。
以下是该表的一些代码(如果删除+ href,则可以使用):
<table class="cart" width=700px cellpadding="0" cellspacing="0" style="border: 1px;" rules="none" align="center">
<tr height=40px align="center">
<td>Product</td>
<td>Price</td>
<td></td>
<td>Quantity</td>
<td></td>
<td>Delete</td>
</tr>
<?php
// Carrinho
$total=0;
foreach($_SESSION['venda'] as $Prod => $Quantidade):
$SqlCarrinho = mysqli_query($conect,"SELECT * FROM produto WHERE id= '$Prod'");
$ResAssoc = mysqli_fetch_assoc($SqlCarrinho);
echo '<tr height=40px align="center">';
echo '<td>'.$ResAssoc['descricao'].'</td>';
echo '<td>'.number_format($ResAssoc['preco'],2,",",".").'€</td>';
echo '<td>-</td>';
echo '<td>'.$Quantidade.'</td>';
echo '<td><a href="#?more=true&par='.$Prod.'">+</a></td>';
echo '<td><a href="index.php?del='.$ResAssoc['id'].'#carrinho" style="text-decoration:none; color:black;">x</a></td>';
$total += $ResAssoc['preco'] * $Quantidade;
echo '</tr>';
endforeach;
echo '<tr height=40px>';
echo '<td colspan="6" align="right">Total: '.number_format($total,2,",",".").'€</td>';
echo '</tr>';
echo'</table>';
以下是我使用的会话的一些代码:
session_start();
if(isset($_POST['more'])){ $_SESSION['venda'] [$_GET['par']] = $_GET['par'] + 1 ; }
if(isset($_SESSION['venda'])){}
else{ $_SESSION['venda'] = array(); }
if(isset($_GET['par'])){ $_SESSION['venda'] [$_GET['par']] = 1 ; }
if(isset($_GET['del'])){
$Del = $_GET['del'];
unset($_SESSION['venda'][$Del]);
一切正常,直到我添加+ href,然后它才对表格进行格式化: broken table
我已经确认这不是CSS错误,href带有/不带有CSS都消失了。
答案 0 :(得分:0)
您需要删除链接中的#
。
<a href="?more=true&par='.$Prod.'>+</a>
代替
<a href="#?more=true&par='.$Prod.'>+</a>
向服务器发送请求时,浏览器会忽略第一个#
之后的所有内容。您的GET参数当前未随请求一起发送。
更新
签出标记的行。每次设置par时,它都会重置venda→par(如果要增加值,通常是这种情况)。也许您还希望它初始化var。在这种情况下,您需要修复if语句(if(!isset($_GET['par'])){ /* ... */ }
)。 Venda也被重置。
session_start();
if(isset($_POST['more'])){ $_SESSION['venda'] [$_GET['par']] = $_GET['par'] + 1 ; }
if(isset($_SESSION['venda'])){}
else{ $_SESSION['venda'] = array(); }
// This line
if(isset($_GET['par'])){ $_SESSION['venda'] [$_GET['par']] = 1 ; }
if(isset($_GET['del'])){
$Del = $_GET['del'];
unset($_SESSION['venda'][$Del]);
更新2
我认为您想要这样的代码:
session_start();
// First, check if all vars are initialized
// Init if 'venda' is NOT set
if (!isset($_SESSION['venda'])) {
$_SESSION['venda'] = array();
}
// Init if 'venda['par'] is not set
if (isset($_GET['par']) && !isset($_SESSION['venda'][$_GET['par']])) {
$_SESSION['venda'][$_GET['par']] = 1;
}
// Run the updates/deletions
// Increase if 'more' is set
if (isset($_POST['more']) && isset($_GET['par'])) {
$_SESSION['venda'][$_GET['par']] += 1;
}
// Delete
if (isset($_GET['del'])) {
$Del = $_GET['del'];
unset($_SESSION['venda'][$Del]);
}