1

さまざまな製品サイズの jqmodal にドロップダウンを設定しようとしています。私は本当にこれを機能させることができません。どんな助けでも感謝します。

私のJSON

{
    "product": {
        "variants": {
            "3394248": {
                "id": 3394248,
                "code": "19",
                "ean": "19",
                "sku": "19",
                "price": {
                    "price": 19.95,
                    "price_incl": 23.7405,
                    "price_excl": 19.95,
                    "price_old": 0,
                    "price_old_incl": 0,
                    "price_old_excl": 0
                },
                "title": "Maat 95",
                "active": false
            },
            "3376388": {
                "id": 3376388,
                "code": "19",
                "ean": "19",
                "sku": "19",
                "price": {
                    "price": 19.95,
                    "price_incl": 23.7405,
                    "price_excl": 19.95,
                    "price_old": 0,
                    "price_old_incl": 0,
                    "price_old_excl": 0
                },
                "title": "Maat 100",
                "active": true
            }
        },
    }
}

私のスクリプト

<script type="text/javascript">
$('#productVariations').jqm({
  trigger: 'a.ex2trigger'
});

function loadProductVariations(){

var productId = '{{ product.fulltitle }}';
var url = 'http://shop.com/'+productId+'/?format=json';


  $.getJSON(url,function(data){

    var variantHtml = '';

    $.each(data.product.variants, function(index, variants){   
      variantHtml = variantHtml + '<option value="' +variants.id+'</option>';
    });

    $('#productoptions').html(variantHtml);
});
}

私のhtml

<div class="jqmWindow" id="productVariations">
Even geduld aub... <img src="https://shop.com/com/ajax-loader.gif?1" alt="loading" />
<span id="close">
  <button class="jqmClose">Close</button>
</span>
<br/><br/>
<form class="formProduct" id="product_configure_form" method="post" action="{{ ('cart/add/' ~ product.vid) | url }}" enctype="application/x-www-form-urlencoded">
  <div id="productoptions">
    <select onchange="document.getElementById('product_configure_form').action = 'http://shop.com/product/variants/2140679/'; document.getElementById('product_configure_form').submit();" id="product_configure_variants" name="variant">

    </select>
  </div>
  <a id="submit" class="button gray" href="#" onclick="$('#product_configure_form').submit(); return false;" title="{{ 'Add to cart' | t }}">{{ 'Add to cart' | t }}</a>
</form>
<span id="message"></span>

これは概念なので、コードの現在の間違いを許してください! 私が知る必要がある唯一のことは、ドロップダウン ボックスに入力する方法です。

4

1 に答える 1

1

あなたのjsonは正しくフォーマットされていません。2 つの閉じ括弧がありません。元の投稿で編集しました。

次に、次のようにループを変更してみてください。

$.each(data.product.variants, function(index, variants){   
variantHtml = variantHtml + '<option value="' +variants.id+'</option>';
});

for (var i in data.product.variants) {
     var v = data.product.variants[i];
     var $opt = $("<option>").text(v.title);
     $("#productoptions select").append($opt);
}
于 2012-07-07T02:08:53.117 に答える