0

こんにちは、JavaScript 関数があり、c_id がループするたびに呼び出すようにします。しかし、私にはそれについての考えがありません。

ここに私の機能があります。

    function getCLowestPrice(c_id){
    $.ajax({
    type: "POST",
    url: 'http://sample.com/api/store_lowest_price/',
    dataType: "xml",
    cache: false,
    data: {'id' : c_id},
    success: function(resp){  
         // we have the response 
            console.log(resp); 

        $(resp).find("response").each(function() {
            var c_name = $(this).find("c_name").text();
            var c_currency = $(this).find("currency").text();
            var c_min_price = $(this).find("price_min").text();

            var formated_price = addCommas(parseFloat(c_min_price).toFixed(2));

            $('.cinformation').html("<p>Lowest Price : " + c_currency + " " + formated_price + "</p>");
        });

       },  
    }); 

}

divがロードされたときに呼び出すようにします。ただし、すべてのクライアントとその c_id をループします。

<div>
      Client : <?php echo get_post_meta($post->ID, 'wpcf-c', true); ?>
      <div class="cinformation">
          C ID = <?php echo get_post_meta($post->ID, 'wpcf-c-id', true); ?>
           ....
      </div>
...
</div>

ループするとこうなります。

<div>
     Client : Hello         
   <div class="cinformation">
     C ID = 1
     ....

   </div>
   ...
</div>
....
<div>
     Client : World         
   <div class="cinformation">
     C ID = 2
     ....

   </div>
   ...
</div>
....
....
...

getCLowestPrice(c_id)しかし、 に を追加する方法がわかりませんcinformation div

を使用しようとしましたonloadが、div では使用できません。

誰かが私のケースについて考えを持っていますか?

前もって感謝します ...

4

2 に答える 2

1

次のように data 属性を使用して C ID を配置する必要があります。

<div>
    Client : Hello         
    <div class="cinformation" data-c_id="1">
    </div>
</div>

次に、ページが読み込まれた後、jQuery を使用してすべての div を選択し、関数を呼び出します。

$(".cinformation[data-c_id]").each(function(index, elem){
        var cId = $(this).data("c_id");
        getCLowestPrice(cId);
});
于 2012-07-10T07:14:00.283 に答える
0

これを追加してみることができます

<script type="text/javascript">
       getCLowestPrice (<?php echo get_post_meta($post->ID); ?>) 
</script>

PHPのforループで

于 2012-07-10T07:17:19.380 に答える