2010-10-27 14 views
9

मेरे पास एक पंक्ति है जिसमें कई पंक्तियां हैं जिनमें फॉर्म इनपुट (चेकबॉक्स, टेक्स्ट, ड्रॉपडाउन) शामिल हैं। जब मैं सहेजता हूं तो मैं JSON को प्रत्येक तालिका पंक्ति का प्रतिनिधित्व करने में सक्षम होना चाहता हूं जिसका उपयोग AJAX अनुरोध में किया जाएगा। उन संख्याओं तालिका पंक्ति के आईडी जा रहा हैतालिका पंक्तियों (jQuery) में इनपुट को क्रमबद्ध करें

[1: { "input_name":"input_value", "input_name":"input_value", etc...}, 2: {etc...}] 

: तो मैं इस तरह वापस कुछ प्राप्त करना चाहते हैं प्रत्येक पंक्ति उस पर एक आईडी है।

ऐसा करने का कोई तरीका?

+0

कोई विशेष कारण है कि आप की जरूरत यह है कि जिस तरह से स्वरूपित है? – Calvin

उत्तर

21

यह तुम क्या जरूरत है क्या करना चाहिए काम करना चाहिए:

<table> 
    <tr id="101"> 
     <td><input type="text" name="f1" value="" /></td> 
     <td><input type="checkbox" name="f2" value="v2" /></td> 
     <td><input type="checkbox" name="f3" value="" /></td> 
     <td><select name="f4"> 
       <option>1</option> 
       <option>2</option> 
       <option>3</option> 
      </select></td> 
    </tr> 
    <tr id="102"> 
     <td><input type="text" name="f1" value="" /></td> 
     <td><input type="checkbox" name="f2" value="v2" /></td> 
     <td><input type="checkbox" name="f3" value="" /></td> 
     <td><select name="f4"> 
       <option>1</option> 
       <option>2</option> 
       <option>3</option> 
      </select></td> 
    </tr> 
    <tr id="103"> 
     <td><input type="text" name="f1" value="" /></td> 
     <td><input type="checkbox" name="f2" value="v2" /></td> 
     <td><input type="checkbox" name="f3" value="" /></td> 
     <td><select name="f4"> 
       <option>1</option> 
       <option>2</option> 
       <option>3</option> 
      </select></td> 
    </tr> 

</table> 
<button id="btnGo">Go</button> 
<script type="text/javascript"> 
    $('#btnGo').click(function(){ 
     var data={}; 
     $('table').find('tr').each(function(){ 
      var id=$(this).attr('id'); 
      var row={}; 
      $(this).find('input,select,textarea').each(function(){ 
       row[$(this).attr('name')]=$(this).val(); 
      }); 
      data[id]=row; 
     }); 
     console.log(data); 
    }); 
</script> 
+0

बहुत बहुत धन्यवाद .. यह मेरे लिए बहुत उपयोगी था .. – user284503

+0

खुशी है कि यह आपकी मदद की :) – code90

+0

बहुत बहुत धन्यवाद। इससे मुझे भी मदद मिली। :) – Jijoy

2

परीक्षण नहीं किया है, लेकिन कुछ इस तरह

var myjson = new Object(); 
$("#tableid > tr").each(function() { 
    var tablerow = $(this); 
    $("td input", tablerow).each(function() { 
    var input = $(this); 
    myjson[tablerow.attr("id")][input.attr("name")] = input.val(); 
    }); 
}); 
संबंधित मुद्दे