繁体   English   中英

PHP回显消息

[英]PHP echo message

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

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

好的,因为大家都能从代码中看到我正在循环产品数据库并列出一些用ADD按钮分配的项目.....现在我在此按钮中添加了一些JavaScript通知用户是否这是他们想要的项目添加到他们的篮子里

不重新发送整个页面,这在php中是不可能的。 您可以使用javascript对某些按钮单击事件做出反应。

与jQuery结合使用时,结果如下所示

<div id="messagefield"></div>
<button id="buttonid">click me!</button>
<script>
    $("#buttonid").click(function() {
        $("#messagefield").html("The button was clicked");
    });
</script>

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

显然,这还不完整……这实际上只是一个起点/您应该做的一般性想法。

首先,您在此行有一个错误:

$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

为什么要分两个阶段进行? 尝试这个:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM