Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Отправить пост запрос из данных (https://javascript.ru/forum/jquery/39832-otpravit-post-zapros-iz-dannykh.html)

ruzik 13.07.2013 22:40

Отправить пост запрос из данных
 
Здравствуйте, у меня есть таблица, которая имеет строки такого вида:
<ul class="striped-row">
                    <li class="two" style="width: 35px;"><input class="checkBoxToDelete" type="checkbox" style="display: inline;"/></li>
                    <li class="two">@(FirstName + " " + LastName)</li>
                    <li class="two">@EmailAddress</li>
                </ul>

На @ внимание особого не обращайте, это часть Asp.net и особого значения тут не имеет. Задание в том, чтобы удалить отмеченные элементы и отправить запрос на сервер для того, чтобы и там они удалились. Отправлять нужно 3 столбец(email'ы).
Вот js код(честно говоря говнокод, использую js только неделю, раньше веба вообще не касался):
function DeleteSelectedRows() {
        $(".checkBoxToDelete").each(function (indx, element) {
            var toDelete = [];
            var currentElement = $(element);
            if (currentElement.attr("checked") == "checked") {
                var currentRow = currentElement.parent().parent();
                //toDelete[toDelete.length - 1] = currentRow;
                alert(currentRow.eq(2).text()); //<---
                currentRow.remove();
            }
        });

Для поиска элементов использую jquery. С удалением нужной строки проблем особых не было, а вот тем чтобы получить email возникли некоторые проблемы.
И еще вопрос, хотя наверное для него лучше создать отдельный топик; мы можем искать по всей странице с помощью функции $(). Как ограничить область поиска определенной частью этой страницы, например тем же currentRow из моего кода.
Заранее спасибо!

danik.js 14.07.2013 11:01

Ответ на второй вопрос: currentRow.find('your selector')
ЧТо касается первого - собери id-шники удаляемых строк и запости их на сервер. чета типа

var id = [3,4,8]; // отмеченные строки. для примера
$.post('/rows/delete/', {id: id}, function(){
alert('Строки удалены.');
})


На сервер придет пост запрос на /rows/delete/. Если верить этой статье http://haacked.com/archive/2008/10/2...to-a-list.aspx , то в качестве post-переменной с именем id будет коллекция отмеченных id'шников.

danik.js 14.07.2013 11:10

Кстати я бы код по-другому писал.

// массив всех строк
var $rows  = $('.striped-row');

// массив строк для удаления
var $rowsToDelete = $.filter($rows, function(item){
    return $(item).find('.checkBoxToDelete').is(':checked');
});

// массив id'шников или чего там тебе нужно для POST
var id = $.map($rowsToDelete, function(item){
    return $(item).find('тут где у тебя Id или email хз').val();
});

alert(id);

ruzik 14.07.2013 11:39

Спасибо!


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