2016-07-06 84 views
-2

我希望有人可以帮助我我有一个jQuery的函数,它是从一个PHP窗体中获取值,我需要为ajax调用创建变量。是否有可能一个变种Jquery循环内var

这里中添加一个循环是我的代码,所以希望将更好地解释什么,我试图做

... 
var teacher_ids = $('#teacher_ids').val(); 
var status = 'pending'; 
var array = teacher_ids.split(','); 

var data = { 
    name: title, 
    short_description: excerpt, 
    description: content, 
    status: status, 
    type: 'variable', 
    variations : [ 

这是我遇到的问题,我有多个值,其我希望能够循环虽然

$.each(array,function (i, item) { 
    variation_type = item.split('_'); 
    { 
     regular_price: half_hour, 
     attributes: [{ 
      id:3, 
      slug: 'pa_lessonduration', 
      //name: 'lessonduration', 
      option: '1-hour' 
     },{ 
      id: 1, 
      slug: 'pa_weekday', 
      // name: 'weekday', 
      option: variation_type[0] 
     },{ 
      id: 2, 
      slug: 'pa_daytime', 
      //name: 'daytime', 
      option: variation_type[1], 
     }] 
     //"expected an assignment or function call and instead saw an expression?" 
    } 
    //"expected (saw { " 
    }) 

$.ajax({ 
     method: "PUT", 
     url: POST_SUBMITTER.root + 'wc/v1/products/'+ product_id +'', 
     data: data, 
     beforeSend: function (xhr) { 
      xhr.setRequestHeader('X-WP-Nonce', POST_SUBMITTER.nonce); 
     }, 
     success : function(response) { 
      console.log(response); 
      alert(POST_SUBMITTER.success); 
     }, 
     fail : function(response) { 
      console.log(response); 
      alert(POST_SUBMITTER.failure); 
     } 


    }); 

任何建议如何让这个工作请。这应该打印以下,但我得到的错误

var data = { 
    name: title, 
    short_description: excerpt, 
    description: content, 
    status: status, 
    type: 'variable', 
    variations: [{ 
     regular_price: '19.99', 
     attributes: [{ 
      id: 3, 
      name: 'pa_lessonduration', 
      option: '1-hour' 
     }, { 
      name: 'pa_daytime', 
      option: '0900' 
     }, { 
      name: 'weekday', 
      option: 'monday' 
     }] 
    }, 
    { 
     regular_price: '19.99', 
     attributes: [{ 
      id: 3, 
      name: 'pa_lessonduration', 
      option: '1-hour' 
     }, { 
      name: 'pa_daytime', 
      option: '1100' 
     }, { 
      name: 'weekday', 
      option: 'wednesday' 
     }] 
    }] 
} 

等等...

我希望是有道理的,如果不问,我会尽量做到更加清晰低于

+3

感谢您的鼓励之词:)我想像你这样拥有丰富专业知识的人不能评论以帮助像我这样的低调的自己? – Martiniboy

+0

不知道我完全理解这个问题。乍一看,在我看来,为“变体”创建变量然后使用变量会比较容易,而不是试图创建变体。需要更多信息才能真正理解。 – ckimbrell

+1

感谢Zakarai整理我的代码,对不起,我把它添加到我的手机很难得到格式正确,道歉,如果我的格式冒犯了我将整个功能一旦我在我的电脑前,以避免打乱任何人 – Martiniboy

回答

0

代码定义数组variation以后将用于data

var teacher_ids = $('#teacher_ids').val(); 
var status = 'pending'; 
var array = teacher_ids.split(','); 

variation=[];     // Declare an empty array 
           // Then define it 
for(i=0;i<array.length;i++){ 
    variation_type = array[i].split('_'); 

    variation[i] = { 
     regular_price: half_hour, 
     attributes: [{ 
      id:3, 
      slug: 'pa_lessonduration', 
      //name: 'lessonduration', 
      option: '1-hour' 
     },{ 
      id: 1, 
      slug: 'pa_weekday', 
      // name: 'weekday', 
      option: variation_type[0] 
     },{ 
      id: 2, 
      slug: 'pa_daytime', 
      //name: 'daytime', 
      option: variation_type[1] 
     }] 
    } 
} 


var data = {     // Define data 
    name: title, 
    short_description: excerpt, 
    description: content, 
    status: status, 
    type: 'variable', 
    variations : variation  // This is the array defined in the loop above 
} 

$.ajax({ 
    method: "PUT", 
    url: POST_SUBMITTER.root + 'wc/v1/products/'+ product_id +'', 
    data: data, 
    beforeSend: function (xhr) { 
     xhr.setRequestHeader('X-WP-Nonce', POST_SUBMITTER.nonce); 
    }, 
    success : function(response) { 
     console.log(response); 
     alert(POST_SUBMITTER.success); 
    }, 
    fail : function(response) { 
     console.log(response); 
     alert(POST_SUBMITTER.failure); 
    } 
}); 
+0

非常感谢你** Louys Patrice Bessette **,我只是需要在循环之前声明一个变量_类型的空数组,并且它工作得很好,为什么这不适用于$ .each?在我以前的一个测试中,我试图在将数据添加到数据var之前定义一个变体,但它没有起作用,但是使用了$ .each – Martiniboy

+0

'$ .each()'可以循环使用一组HTML元素。这个集合必须在它之前指定。例如:'$(“。item”)。each(function(){//对每个具有类项目的元素执行一些操作}为了遍历一个数组,循环一个javascript'for'循环是最好的。 –

+0

有道理,谢谢 – Martiniboy