0

我正在创建一个在线商店网站,目前我正在使用正在运行的 Basket。我正在尝试添加一个功能,一旦用户单击添加按钮确认该项目确实已添加到购物篮中,该功能将回显一条消息。

我创建了一个简单的 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 "&pound $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>

好的,你们都可以从代码中看到我正在循环产品数据库并列出一些使用添加按钮分配的项目.....现在我在这个按钮上添加了一些 javascript 来通知用户这是否是他们想要的项目添加到他们的购物篮

4

4 回答 4

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>
于 2013-03-22T00:50:15.140 回答
1

正如@patashu 所说,仅使用 PHP 是不可能的。您应该添加 javascript 来处理通过 AJAX 将项目添加到您的购物车,然后侦听您回显的响应,如果成功,则显示成功消息。

这可能是一个起点:

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);

显然这并不完整......这实际上只是一个起点/您应该做什么的一般概念。

于 2013-03-22T00:51:37.857 回答
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.phphttp://php.net/manual/en/book.pdo.php

于 2013-03-22T00:46:58.063 回答
-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;
}
于 2013-03-22T00:48:02.570 回答