2017-11-02 3 views
0

ローカル記憶域に2つのJSON配列を格納しました。つまり、 viewbody=>json data1,viewcollar=>json data2です。私はforeachのループをデータ名属性を持つローカル記憶域から動的に取り出しています。しかし、2つのarraysデータをphpajaxに渡すことはできません。親切に私を助けてください。以下はforeachデータをajaxに渡す方法

は私のコードで、

$(document).on('click','.startDesignbtn', function() { 
    var product_id = $(this).data("id"); 
    $(".getoption").each(function(){ 
    var option_name = $(".getoption").data("name"); 
    // alert(option_name); 
     var views = localStorage.getItem("view"+option_name); 
    }); 

    $.ajax({ 
    url: 'index.php?route=product/design/designMultiImage', 
    type: 'post', 
    //dataType: 'text', 
    data:{ 
     'product_id': product_id, 
     'views' : views, 
    }, 
    success: function(data) { 
     alert(data);return false; 
     var intValArray = data.split(','); 
     var count = 0; 
     $.each(intValArray,function(i){  
     localStorage.setItem("view_"+count,intValArray[i]); 
     count++; 
     }); 
     localStorage.setItem('design-image',data); 
     localStorage.setItem('parent-id',product_id); 
    // var custom_link = data; 
     window.location = "<?php echo $customize_link;?>"; 
    } 
    }); 
}); 
+0

'VARビュー= localStorage.getItem(「ビュー」+ OPTION_NAME);' - あなたがこれを実行するたびに、あなたは.eachの範囲内で新たな変数「ビュー」を作成しますループ。 "click"関数の中に配列を作成し、ループが実行されるたびに配列の次のスペース(.push()を使用)に 'localStorage.getItem(" view "+ option_name);の結果を代入する必要があります。 – ADyson

答えて

0

使用して配列に値を追加する)(のArray.push。また、各ループの外に配列を定義する必要があります。そうしないと、毎回リセットされます。また、ループ内では、クラスごとに要素を対象にするのではなく、$(this)を使用します。下記のおクリック機能修正:

$(document).on('click','.startDesignbtn', function() { 
    var product_id = $(this).data("id"); 
    var views = []; 
    $(".getoption").each(function(){ 
    var option_name = $(this).data("name"); 
    // alert(option_name); 


     views.push("view"+option_name); 


    }); 

    $.ajax({ 
    url: 'index.php?route=product/design/designMultiImage', 
    type: 'post', 
    //dataType: 'text', 
    data:{ 
     'product_id': product_id, 
     'views' : views, 
    }, 
    success: ... 
関連する問題