添加到购物车后显示成功的消息

时间:2015-08-28 09:37:36

标签: php

我正在开发一个没有任何cms的php电子商务网站。我做了大约所有的事情,但是我在购物车页面上遇到了一个问题。我想在添加到会话变量的购物车后显示成功的消息。请建议我。

这是我的代码:

<?php
session_start();
include('dbfunctions.php');

$id = $mysqli->real_escape_string($_GET['id']);
$category_id=$mysqli->real_escape_string($_GET['category_id']);
?>

<?php
$current_url = base64_encode($url="http://".$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']);
$products=$mysqli->query("select * from product_details where id=$id and  category_id='$category_id'");
if(count($products)>0) 
{

$obj=$products->fetch_object(); {

echo '<form method="post" action="cart_update.php">';
echo '<img src="../image/product/'.$obj->pic.'"class="img-responsive" style="width:100%;height:300px;">';
echo ucwords($obj->product_name);
echo $obj->material;
echo $obj->product_code;
echo $obj->area;
echo $obj->width;
echo $obj->rolls;
echo $obj->features;
echo '<button id="button-cart">Add to Cart</button>';
echo '<input type="hidden" name="id" value="'.$obj->uid.'" />';
echo '<input type="hidden" name="type" value="add" />';
echo '<input type="hidden" name="return_url" value="'.$current_url.'" />';
}
}
?>

4 个答案:

答案 0 :(得分:0)

mysqli_query如果失败则返回FALSE,如果返回TRUE则返回成功查询。您无法将其用于计数

所以不是这个

 $products=$mysqli->query("select * from product_details where id=$id and  category_id='$category_id'");

 if(count($products)>0) 

你需要计算行数

 $row_cnt = $products->num_rows;
 if(count($row_cnt)>0) 

答案 1 :(得分:0)

if ($success){ 
    $message = "Sent! Thank you";
} else {
    $message = "Ops! Try again!";
}
?><script>
    prompt(<?php echo json_encode($message); ?>);
</script>
<noscript>
    <p><?php echo htmlspecialchars($message); ?></p>
</noscript>

注意:给定一个输入字符串,json_encode将输出一个可以安全包含在HTML脚本元素中的JavaScript字符串文字。它不会输出JSON。

虽然字符串本身不包含任何特殊字符,但对于您输出的任何不明确HTML / JS /等的字符串运行此类XSS保护是一个好习惯。

或试试这个

<?php
   if ($success) {
       $message = "Added! Thank you.";
   } else {
       $message = "Oops...";
   }
   echo '<div id="message">'.$message.'<div id="close-button"></div></div>';
?>

通过这种方式,您可以按照自己的喜好设置样式(如绝对定位)。但如果div位于绝对位置,则必须在javascript中实现关闭按钮。我希望这有帮助

答案 2 :(得分:0)

显示此类消息吐司符合您的要求。

http://codeseven.github.io/toastr/demo.html

答案 3 :(得分:0)

你可以使用jQuery和ajax到你的页面:

<强>的jQuery

var itemName = $( "#itemName" ).val(); //Get the value using the ID of the input
var itemPrice = $( "#itemPrice" ).val(); //Get the value using the id of the input
$.ajax( {
    url: "myphpscript.php?itemName=" + ietmName + "&itemPrice=" + itemPrice, //Specify your url to go to (an abosulte  path to the php script to run)
    type: "GET", //Specify the type, can be GET or POST
    success: function ( response ) //Set the success function
    {
        if (response == "true") //Check the response it "true"
        {
            alert( "Item addded to cart!" ); //Show success message
            return;
        }
        //response == "false" handler
        alert( "Failed to add item to the cart" ); //Show fail message
        return;
    }
} );

PHP代码

function addToCart()
{
    if (!isset($_REQUEST['itemName']) || !isset($_REQUEST['itemPrice']))
    {
        return "false";
    }
    //Add to cart code with `return "true";` or `return "false"` checks

    return "true";
}

我希望这可以帮助你:)