我正在开发一个没有任何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.'" />';
}
}
?>
答案 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)
显示此类消息吐司符合您的要求。
答案 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";
}
我希望这可以帮助你:)