我正在创建一个在线商店网站,当时我正在使用正在运行的篮子。我试图添加一个功能,一旦用户点击添加按钮确认该项目确实已被添加到购物篮中,它将回显消息。
我创建了一个简单的if语句,我相信应该很好地处理这个问题但没有发生任何事情。没有消息回显。
代码:
if (isset($_GET['add'])){
$quantity = mysql_query('SELECT product_id, product_qua FROM products WHERE product_id='.$_GET['add']);
while($quantity_row = mysql_fetch_assoc($quantity)){
if($quantity_row['product_qua'] !=$_SESSION['cart_'.$_GET['add']]){
$_SESSION['cart_'.$_GET['add']]+='1';
}
}
}
if (isset($_GET['add'])){
$basketMessage = "Item Sucesfully Added To Your Basket";
echo $basketMessage;
}
有什么建议......?
解答:
确定忘记上面的代码........
belov代码是代码形式的一个文件,其中列出了产品,然后将其链接到cart.php上面的代码片段:
代码:
while($get_row = mysql_fetch_assoc($get)){
?>
<table id='display'>
<tr><td><?php echo "<img src=$get_row[$product_image] class='grow'>" ?></td></tr>
<tr>
<th></th>
<th><strong>Avalible</strong></th>
<th><strong>Price</strong></th>
<th><strong>Description</strong></th>
</tr>
<tr>
<td width='290px'><?php echo "$get_row[$product_name]" ?></td>
<td width='290px'><?php echo "$get_row[$product_qua]" ?></td>
<td width='290px'><?php echo "£ $get_row[$product_price]" ?></td>
<td width='290px'><?php echo "$get_row[$product_des]" ?></td>
</tr>
<tr>
<td><?php echo '<a href="cart.php?add='.$get_row['product_id'].'" onclick="return basketMessage()">Add</a>';?></td>
</tr>
</table>
<?php
}
}
?>
<script>
function basketMessage(){
var confirmed = confirm("Add this item to Basket ?");
return confirmed;
}
</script>
好的,因为你们都可以看到代码我正在循环产品数据库并列出一些分配了ADD按钮的项目.....现在我在这个按钮上添加了一些javascript来通知用户这是否是他们想要添加到购物篮中的商品
答案 0 :(得分:1)
这不可能在PHP中重新发送整个页面。您可以使用javascript对某些按钮点击事件做出反应。
与jQuery结合使用会产生类似这样的结果
<div id="messagefield"></div>
<button id="buttonid">click me!</button>
<script>
$("#buttonid").click(function() {
$("#messagefield").html("The button was clicked");
});
</script>
答案 1 :(得分:1)
正如@patashu所述,单靠PHP是不可能的。您应该通过AJAX添加处理将项目添加到购物车的javascript,然后侦听您回复的响应,如果成功,则显示成功消息。
这可能是一个起点:
HTML:
<button class="mybutton">add to cart</button>
javascript:
<script type="text/javascript">
$(document).ready(function(){
$('.mybutton').click(function(){
$.ajax({
url:"yourscript.php",
data: {stuff: 'your cart data', productid: 134}
success: function(data){
alert("your success message');
}
});
});
});
</script>
正在侦听你的ajax调用的PHP函数:
//does stuff
$basketMessage = "Item Sucesfully Added To Your Basket";
echo json_encode($basketMessage);
显然这并不完整......这实际上只是一个起点/关于你应该做什么的一般概念。
答案 2 :(得分:0)
首先,你在这一行有一个错误:
$quantity = mysql_query('SELECT product_id, product_qua FROM products WHERE product_id='.$_GET['add']);
如果必须
$add = $_GET['add'];
$quantity = mysql_query("SELECT product_id, product_qua FROM products WHERE product_id='$add'");
或
$quantity = mysql_query("SELECT product_id, product_qua FROM products WHERE product_id='".$_GET['add']."'");
并且您不必使用mysql_ *不再使用原因。 您可以使用http://php.net/manual/en/book.mysqli.php或http://php.net/manual/en/book.pdo.php
答案 3 :(得分:-1)
为什么你分两个阶段呢?试试这个:
if (isset($_GET['add'])){
$quantity = mysql_query('SELECT product_id, product_qua FROM products WHERE product_id='.$_GET['add']);
while($quantity_row = mysql_fetch_assoc($quantity)){
if($quantity_row['product_qua'] !=$_SESSION['cart_'.$_GET['add']]){
$_SESSION['cart_'.$_GET['add']]+='1';
}
}
$basketMessage = "Item Sucesfully Added To Your Basket";
echo $basketMessage;
}