2017-04-18 32 views
0

我有一些輸入字段的表單,也有一個陣列輸入字段:輸入數組字段中添加單引號時控制檯登錄快遞JS(節點JS)

<input type="hidden" id="user_id" name="user_id" value="1" /> 
<input type="text" name="test[0][name]" value="car" /> 
<input type="text" name="test[1][value]" value="100" /> 

我張貼通過AJAX這種形式。 現在,當我控制日誌發佈數據到快遞js。我越來越象下面這樣:

{ 
user_id : '1', 
'test[0]' : 'a', 
'test[1]' : 'b', 
} 

所以問題是:

1)爲什麼我收到輸入數組這樣嗎?相反,我應該將數組作爲快速js中的對象。

2)我能夠使用post.user_id訪問user_id,但無法訪問測試數組。

我試圖訪問使用post.testpost.test.name測試陣列,但始終未定義。

我的Ajax代碼是:

$("#frmSave").on('submit', function(e) { 
      e.preventDefault(); 
      var el = $("#btnPublish"); 

      var formData = new FormData(); 
      formData.append("image",$("#image").get(0).files[0]); 

      var other_data = $("#frmSave").serializeArray(); 
      $.each(other_data, function(key, input) { 
       formData.append(input.name, input.value); 
      }) 

      $.ajax({ 
       url : "{{ admin_url }}offer/add", 
       type : "POST", 
       data : formData, 
       dataType : "json", 
       contentType : false, 
       processData : false, 
       beforeSend : function() { 
        el.html('<img src="{{ admin_url }}images/loaders/loader5.gif" width="15"> Wait...'); 
       }, 
       success : function(json) { 
        if(json.errors) { 
         var errors_string = ''; 
         $.each(json.errors, function(index,value) { 
          errors_string += value + '<br />'; 
         }); 

         if(errors_string != '') { 
          $.gritter.add({ 
           title: 'Required Field', 
           text: errors_string, 
           class_name: 'growl-danger', 
           sticky: false, 
           time: '2000' 
          }); 
         } 
        } else if(json.error_msg) { 
         $.gritter.add({ 
          title: 'Error!', 
          text: json.error_msg, 
          class_name: 'growl-danger', 
          sticky: false, 
          time: '2000' 
         }); 
        } else if(json.success_msg) { 
         $.gritter.add({ 
          title: 'Success', 
          text: json.success_msg, 
          class_name: 'growl-success', 
          sticky: false, 
          time: '2000' 
         }); 
        } 
        el.html('<i class="fa fa-globe"></i> &nbsp; Publish'); 
       }, 
       error(xhr, ajaxOptions, thrownError) { 
        $.gritter.add({ 
         title: 'Something went wrong', 
         text: xhr.status + ':' + thrownError, 
         class_name: 'growl-warning', 
         sticky: false, 
         time: '2000' 
        }); 
        el.html('<i class="fa fa-globe"></i> &nbsp; Publish'); 
       } 
      }) 
     }); 

因此,誰能幫助我? 在此先感謝

+0

您是否在使用[this](https://github.com/expressjs/body-parser)?如果是這樣,請檢查在urlencoded選項中[擴展名](https://github.com/expressjs/body-parser#extended)是否爲'true'。 – FirstOne

+0

我做了這個真正的「app.use(bodyParser.urlencoded({extended:true}));」我正在使用強大的模塊來訪問發佈數據。 – Ankit

+0

我從來沒有使用強大的,所以如果我以前的評論沒有使它的工作,我不能幫你。 sry – FirstOne

回答

0

您可以訪問使用

post['test[0]'] 

也許你可以發佈更多的代碼,我們可以幫助你更好。

問候!

Roth

+0

是的,我能夠像這樣訪問,但爲什麼我得到像這樣的輸入數組。相反,我應該將數組作爲對象。 – Ankit

+0

發佈一些更多的代碼,我會盡力幫助你 – Roth

+0

我添加了ajax代碼,以便更好地理解。 – Ankit