2017-05-25 7 views
0

私は以下のようにajaxとvanilla javascriptを使用してフォームを送信しています。私が達成しようとしているのは、選択したすべての値をの項目に保存することです。これは正常に動作しています。jsonオブジェクトにキー値をプッシュし、ajaxリクエストで渡します。

今私は)(私のxhttp.sendに以下のようにオブジェクトを作成するオブジェクトOBJとパス、それを自分のキーでこれらの値をプッシュする必要があります。

var obj={"language":"English"; 
     "location":"USA"; 
     "function":"production" 
     } 

JSコード

 saveUserSetting.addEventListener('click', function() {    
      var links = document.querySelectorAll('.main-content .dropdown > a'); 
      for (var i = 0; i <= links.length; i++) { 
       var obj = {}; 
       var items = links[i].textContent; 
       console.log(items); // Items will have the values now English, USA, Production. i want to push this values to 
      } 
      var xhttp = new XMLHttpRequest(); 
      xhttp.open("POST", "data.json", true); 
      xhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); 
      xhttp.onreadystatechange = function() { 
       if (this.readyState == 4 && this.status == 200) { 
        // response 
       } 
      }; 
      xhttp.send("location=USA&langugage=English&function=production"); 
     }); 

私は、プレーンJavaScriptを使用しています。 jqueryやその他のフレームワークはありません。前もって感謝します。

答えて

0

私が正しくあなたの質問を読んでいる場合、あなたは配列を生成することができます:次に、あなたが望む結果を得るための一つの方法を

['English', 'USA', 'Production'] 

を、これであなたのforループを置き換えることです:

var labels = ['language', 'location', 'function'] 
var obj = links.reduce((output, item, index) => { 
    output[labels[index]] = item 
}, {}) 

これは、reduceを使用して、ラベルを使用してオブジェクトからオブジェクトへの変換を実行します。

関連する問題