单击链接后未显示警报


Alert not showing after clicking link

我创建了一个"立即购买"链接,该链接从我的phpmyadmin数据库中提取URL。点击链接会将产品添加到购物车中,但我不希望用户在点击链接时去结账,而是停留在同一页面上,并弹出一条警告,说"产品已添加到购物篮中"。下面是我当前的脚本,但警报没有显示,用户转到链接。有人能告诉我怎么了吗?谢谢

<script>
    $("#shop").onclick(function(event){
        $.post( '" . $producturl[0]->URL . "' );
        event.preventDefault();
        event.stopPropagation();
        console.log('Added To Cart');
    });
</script>

<?php $producturl = ProductURL::find(array('Product'=>$tube1->Tube1));
    if($producturl[0]->URL!=NULL){
        echo '<a href="' . $producturl[0]->URL . '" data-role="button" data-inline="true" data-mini="true" data-theme="d" target="vspage" onclick="' . "_gaq.push(['_trackEvent', 'Buy Now', 'Tube', '" . $tube1->Tube1 . "'" . "]); _gaq.push(['_link', '" . $producturl[0]->URL . "']);" . '" id="shop">Test Cart</a>';
        echo '<a href="#" id="shop">Test2 Cart</a>';
    }
?>

$producturl[0]->URL是将当前产品从phpmyadmin 拉到购物车的数组

尝试删除锚点,使文本不再是链接,然后使其成为具有shop id:的跨度

<?php $producturl = ProductURL::find(array('Product'=>$tube1->Tube1));
        if($producturl[0]->URL!=NULL){
            echo '<span id="shop">Test Cart</span>';
        }
?>

使用

window.alert('Added To Cart') 

而不是

console.log('Added To Cart')

您应该拥有jQuery并更改为:

    $( document ).ready(function() {
        $("#shop").click(function(event){ 
          event.preventDefault();
          // Your code here
          // Alert user
          alert('Added To Cart'); 
       });
   });

在同一页面上,您应该只有一个唯一的id!您有两个shop ID。

更新:

你也有这个:

$.post( '" . $producturl[0]->URL . "' );

要在javascript中使用php变量,您应该回显它们,如:

$.post( '<?php echo $producturl[0]->URL;?>' );

我不知道$producturl[0]->URL变量有什么,但这不足以更新你的购物车,如果你现在不想从服务器端做任何事情,也许你不需要这个$.post。。。也许你只是想更新客户购物车,比如总价、数量,添加新产品。。。

但是,如果您现在真的需要从服务器端做一些事情,请查看此处的$.post文档

<?php $producturl = ProductURL::find(array('Product'=>$tube1->Tube1));
    if($producturl[0]->URL!=NULL){      
echo '<a href="#shop" id="shop">Test2 Cart</a>';
}
    ?>
<script type="text/javascript">
$(document).on('click', '#shop', function (event) {
$.post( '" . $producturl[0]->URL . "' );
event.stopPropogation();
event.preventDefault();
alert('Product has been added to cart');
});
</script>

这是我当前的代码,警报最终会弹出,但当我转到页面时,购物车本身不会更新。我用了$.post,对这最后一步有任何帮助都会很棒!