php foreach循环中的Javascript变量

时间:2014-03-24 18:53:49

标签: javascript php jquery

我遇到的问题非常简单,因为foreach循环的每次迭代都超过了之前的javascript变量,我不知道如何解决这个问题,然后在后面的函数中调用什么

foreach($variant->images as $image){
    echo '
    <div class="product-thmb-group">
        <img id="hikashop_child_image_'.$char_id.'" class="hikashop_child_image" src="' . $this->image->uploadFolder_url . $image->file_path . '" alt="hikashop_child_image_' . $char_id . '"  />
        <span class="product-thmb-title">'.$char_name.'</span>
    </div>
    <script>
        char_id = \''.$char_id.'\';
    </script>';
}


<script>
    jQuery('#hikashop_child_image_24').click(function() {
        jQuery('#hikashop_product_characteristic_13').val(char_id).chosen().change();
        jQuery('#hikashop_product_characteristic_13_chzn').trigger("chosen:updated");
    });
</script>

3 个答案:

答案 0 :(得分:0)

你可以在php中更新你的javascript变量。如果你提出ajax请求。或者只是用ajax重新加载你的页面。

答案 1 :(得分:0)

你可以通过生成GENERIC HTML来解决这个问题,并通过这样做来省略所有ID选择器和特定于标记的jQuery函数。它可能不完全是你所需要的,但你明白了。

foreach($variant->images as $image){
    echo '
    <div class="product-thmb-group">
        <img class="hikashop_child_image" data-chzn=' . $char_id . ' src="' . $this->image->uploadFolder_url . $image->file_path . '" alt="hikashop_child_image_' . $char_id . '"  />
        <span class="product-thmb-title">'.$char_name.'</span>
    </div>
}

JS:

jQuery('.product-thmb-group img').click(function() {
    jQuery(this).val(char_id).chosen().change();
    jQuery(this).data('chzn').trigger("chosen:updated");
});

答案 2 :(得分:0)

这就是我最终要做的事,但是感谢您输入

jQuery('*').click(function(e) {
    var char_id = e.target.id;
    e.stopPropagation();
    var id = char_id.slice(-2);
    jQuery('#hikashop_product_characteristic_13').val(id).chosen().change();
    jQuery('#hikashop_product_characteristic_13_chzn').trigger("chosen:updated");
});