Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Генерация CSV (https://javascript.ru/forum/dom-window/59743-generaciya-csv.html)

Alfer 24.11.2015 14:12

Генерация CSV
 
Всем привет, я тут заморочился с CSV, суть такова, есть кусок html:
<tr>
								<td>User3</td>
								<td>Final</td>
								<td>7</td>
								<td>0</td>
								<td>
									<label>
										<input type="checkbox">
									</label>
								</td>
							</tr>


и есть кусок рабочего скрипта:
<script>
$(document).ready(function () {
	function exportTableToCSV($table, filename) {
        var $rows = $table.find('tr:has(td),tr:has(th)'),

            tmpColDelim = String.fromCharCode(11),
            tmpRowDelim = String.fromCharCode(0), 

            colDelim = '","',
            rowDelim = '"\r\n"',
    
            csv = '"' + $rows.map(function (i, row) {
                var $row = $(row), $cols = $row.find('td,th');
   
                return $cols.map(function (j, col) {
                    var $col = $(col), text = $col.text();
                    return text.replace(/"/g, '""'); 
    
                }).get().join(tmpColDelim);
    
            }).get().join(tmpRowDelim)
                .split(tmpRowDelim).join(rowDelim)
                .split(tmpColDelim).join(colDelim) + '"',
    

            csvData = 'data:application/csv;charset=utf-8,' + encodeURIComponent(csv);
            
            console.log(csv);
            
        	if (window.navigator.msSaveBlob) { 
        		//alert('IE' + csv);
        		window.navigator.msSaveOrOpenBlob(new Blob([csv], {type: "text/plain;charset=utf-8;"}), "download.csv")
        	} 
        	else {
        		$(this).attr({ 'download': filename, 'href': csvData, 'target': '_blank' }); 
        	}
    }
    
    $("#downloadBtn").on('click', function (event) {
 	
        exportTableToCSV.apply(this, [$('#generated'), 'download.csv']);
       
    });

});
</script>


все как бы работает отлично и выгружает документ со всеми данными, но вот есть проблема, а если мне надо в документ csv выгружать только отмеченные чекбоксом поля? хотелось бы иметь возможность либо все либо выборочно! подскажите

рони 24.11.2015 14:26

Alfer,
так выберите в строке 4 tr:has("input:checked")

рони 24.11.2015 14:30

Alfer,
var $rows = $( 'input:checked' ).length ? $table.find('tr:has(input:checked)') : $table.find('tr:has(td),tr:has(th)')


Часовой пояс GMT +3, время: 01:09.