2017-01-20 10 views
1

Prestashop v1.6のデフォルトブートストラップテーマ、product-list.tplファイル。リンクをクリックした後にdivコンテンツを更新する

私はボタンがいくつかのSmartyのコードでカートとdiv要素に追加します:私は、私が唯一のdivコンテンツをリフレッシュしたいリンクする]をクリックすると今

<a class="ajax_add_to_cart_button" href="...."> 

<div id="div1">{if $added}Added{else}not added{/if}</div> 

私はすでにいくつかのコードをスタックで見つけようとしていますが、私の知識はまだ十分ではありません。

$(document).on('click', '.ajax_add_to_cart_button', function() { 
    $("#div1").load()  /*also $("#div1").load("#div1")*/ 
});  

と::

$("#div1").load(location.href + " #div1"); 

といくつかのより多くを、私は試してみて、それが動作していない何

EDIT、また、これは私のために動作しません。

$(function(){ 
$(document).on('click', '.ajax_add_to_cart_button', function(e) { 
e.preventDefault(); 
$("#div1").load($(this).attr("href")); /*and this: $("#div1").load($(this).attr("href #div1"));*/ 
return false 
}); 
}); 

EDIT2:私はこのコードは半分

$(document).ready(function(){ 
$(".ajax_add_to_cart_button").click(function(){ 
$("#div1").html("result reloaded successfully"); 
}); 
}); 

なぜ半分に取り組んでいるしようとすると?テキストは表示されますが、最初の製品にのみ表示されるので、どの製品をクリックしても問題ありません。html()load()またはrefresh()に切り替えてみてください。

EDIT3

$(document).ready(function(){ 
var productid = "{product.id_product}" 
$(".ajax_add_to_cart_button").click(function(){ 
$("#div1" + productid).html("result reloaded successfully"); 
}); 
}); 


<div id="div1{product.id_product}">{if $added}Added{else}not added{/if}</div> 

これは、すべての製品での表示情報で、製品のすべてのコンテナは、今異なるIDを持っています。

+0

こんにちは、私は...それは不明だあなただけの最初の製品のために言うので、あなたは、何をしたいか何も理解していない、あなたは私を説明することができますより良い? – sarcom

+0

私は製品のリストを持っています、すべての製品はこのファイルを '#div1'としています.3番目の製品をカートに追加すると、' html() 'からのこのメッセージは3番目の製品に表示されます。 –

+0

Mmm ...私は...あなたの問題は、あなたがすべての製品に同じIDを使用していることだと思います。 DOMは、ある要素に対して一意のIDを持つべきです、別の方法、おそらくセレクタとしての単純なクラス、あなたはすべての要素に同じIDを使用できませんでした:) – sarcom

答えて

0

$(function(){ 
$(document).on('click', '.ajax_add_to_cart_button', function(e) { 
    e.preventDefault(); 
    $("#one").load($(this).attr("href")); 
    return false. 
}); 

}); 

..以下を試してみて、それが動作するかどうかを確認私はあなたのセレクタに間違ったクラスを持って気づきました。それもチェックしてください。

+0

ありがとうございますが、これは私の仕事ではなく、あなたは偽の後にドットを持っています。また、私が試したもので私の最初の投稿を編集します。 divのソリューションを追加した後、すべてのサイトのコンテンツと製品がカートに移動しませんでした。 –

0

Mmm ...私は...あなたの問題は、すべての製品に同じIDを使用していると思います。 DOMは、ある要素に対して一意のIDを持つ必要があります。別の方法、おそらくセレクタとしての単純なクラス、すべての要素に同じIDを使用することはできません:)

たとえば、

$(document).ready(function(){ 
    $(".ajax_add_to_cart_button").click(function(){ 
     $(".mybeautifuldiv").html("result reloaded successfully"); 
    }); 
}); 
0

あなたは、あなたが適切なdiv要素をターゲットにする必要があります)などの製品(カテゴリページのリストがある場合にこれをやろうとしている場合:あなたのdiv)はmybeautifuldivクラスを持っています。そして、あなたはdivを使用するのではなく、あなたのdivにクラスを使用したいかもしれません。

<div class="my-custom-div">{if $added}Added{else}not added{/if}</div> 

このdivは「カートに追加」アンカー内にありますか? それがその後、ある場合は、それをターゲットにする必要があります。

$(document).ready(function(){ 
    $(".ajax_add_to_cart_button").click(function() { 
     $(this).find('.my-custom-div').html('Content updated!'); 
    }); 
}); 

されていない場合、あなたは、製品の親のdivに横断し、その中にカスタムのdivを見つけることができます。デフォルトのPrestaShopのテーマのカテゴリページでの例:

$(document).ready(function(){ 
    $(".ajax_add_to_cart_button").click(function() {   
     $(this).closest('.product-container').find('.my-custom-div').html('Content updated!'); 
    }); 
}); 
関連する問題