我创建了一个运行良好的购物车。
我在清理购物车时遇到问题,我想使用javascript来完成此操作。
我想使用一个按钮,这样当按下时,它会要求用户确认是否要清除它,如果按下ok,它就会被清除。
因此,我创建了php代码来清除我的购物车:
if (isset($_GET['cmd']) && $_GET['cmd'] == "emptycart") {
unset($_SESSION["cart_array"]);
当它被分配给一个链接时,它会清除购物车。例如:
<a href="cart.php?cmd=emptycart">Empty Cart</a>
不过我想把它改成一个按钮。
到目前为止,我有以下javascript代码来进行验证,但没有清除购物车。
<script language="javascript">
function clear_cart(){
if(confirm('Shopping cart will be cleared. Continue?')){
document.form1.command.value='emptycart';
document.form1.submit();
}
}
</script>
按钮:
<input type="button" value="Clear Cart" onclick="clear_cart()">
所以我的问题是如何使用这个按钮并使用javascript或AJAX来清除这个问题。
谢谢!
这可以通过jQuery和AJAX轻松完成。
function clear_cart( ) {
if( confirm( 'Shopping cart will be cleared. Continue?' ) ) {
$.get( "cart.php?cmd=emptycart", function( data ) {
alert( "Cart has been cleared!" );
});
}
}
有关.get()的更多信息,请访问此处:https://api.jquery.com/jQuery.get/
如果您不喜欢使用jQuery,这可能会有所帮助:http://blog.mgechev.com/2011/07/21/ajax-jquery-beginners/
你把事情搞得太复杂了。
<form method="get" action="">
<input type="hidden" name="cmd" value="emptycart" />
<input type="submit" name="empty_cart_submit" value="Empty Cart" onclick="return confirm('are you sure?');" />
</form>
对于无需重新加载页面的解决方案:
在主页中,您希望调用一个脚本来取消设置$_SESSION
,但您可以使用ajax仅重新加载购物车本身,而不是重新加载页面。
假设你有一个文件,它是一个仅用于购物车内容的子视图,在你的主页面中调用,如
<div id="cart-contents">
//with a function
<?php echo get_cart_sub_view(); ?>
//or with an inlude
<?php include('cart_sub_view.php'); ?>
</div>
您可以使用jQuery加载在新的购物车内容中使用ajax。
您需要一个脚本来生成cart中的html,您可以通过ajax(即cart_sub_view.php)调用它
$_SESSION
取消设置调用后,调用
$("#cart-contents").load(
'cart_sub_view.php'
);
这将ajax到子视图页面,然后将其内容复制到购物车内容分区中。