|
|
|
| пытаюсь получить значения таблицы всех ячеек td как это можно сделать?
делал так
$(document).ready(function() {
$(".btn-order").click(function(){
alert( $("#order tbody tr td:eq(1)").val() );
})
});
|
<table id="order">
<tbody>
<tr>
<td><input name="id[1]" value="1" type="checkbox"></td>
<td>Логические</td>
</tr>
<tr>
<td><input name="id[2]" value="2" type="checkbox"></td>
<td>Аркадные</td>
</tr>
<tr>
<td><input name="id[4]" value="4" type="checkbox"></td>
<td>Стрелялки</td>
</tr>
</tbody>
</table>
|
и сама ссылка
<a href="#" class="btn-order">Сохранить</a>
при нажатии на которую нужно получить все данные ячеек и передать php скрипту, но с передачей думаю справлюсь, тут хотя бы занести в переменную значения ячеек, помогите плз.
js код который привёл вверху я ожидал что вернёт значение первой ячейки со значением "Логические" но за место этого пишет пустую ошибку | |
|
|
|
|
|
|
|
для: web777
(08.09.2010 в 13:56)
| | А вас как бы не смущает, что некоторые ячейки таблицы order содержат не текст, а html элемент? | |
|
|
|
|
|
|
|
для: sim5
(08.09.2010 в 14:55)
| | в принципе нет, но мне нужно только два столбца, один с ID второй с названием, а если и будет html то через PHP удалю
вообще я делаю для этого плагина
http://www.isocra.com/2008/02/table-drag-and-drop-jquery-plugin/
в данном плагине реализовано сохранение но только при перемещении строк, а я хотел сделать по нажатию кнопки или ссылки, иначе много запросов получиться, а так отсортировал строчки и подал запрос | |
|
|
|
|
|
|
|
для: web777
(08.09.2010 в 15:08)
| | А очень жаль, что не смущает. Не стоит говорить о той ерунде что вы написали, так как:
<input name="id[]" value="1" type="checkbox">
<input name="id[]" value="2" type="checkbox">
<input name="id[]" value="4" type="checkbox">
......
как видно не просто так написаны, а это ID неких записей, которые будут определять и стрелеляки, и аркады, и т.д., и т.п.... То есть, передавая на сервер ID, можно узнать, что просят. Следовательно, чтобы передать чего просят, нужно передать значения выбранных чекбоксов, то есть обрабатывать их клик.
И не name="id[1]" value="1", а name="id[]" value="1" - нет смысла дублировать id в двух атрибутах. Либо вы работаете с ключами массива, но в этом случае значение должно играть некую роль - например, количество. Иначе достаточно просто проверять значение содержащее ID. | |
|
|
|
|
|
|
|
для: sim5
(08.09.2010 в 15:19)
| | это верно, но я рассчитывал через PHP разобрать чекбоксы, ну в принципе не важно, можно по имени определять, сейчас сделал так
$(".btn-order").click(function(){
var w = "";
var trcount = $("tbody tr").size();
var j = 0;
if ( trcount > 0) {
for (j=0;j<trcount;j++)
{
w += $("tbody tr:eq(j) td:eq(1)").html();
}
};
alert(w);
})
|
тут я в начале определил переменные, далее переменной trcount определили кол-во tr далее идёт проверка на строки чтобы было не меньше нуля, и следом делаю цикл перебираю все ячейки колонки с именем. Вроде бы всё ничё, но вот почему-то выдаёт nullnullnullnullnullnullnull
у меня 7 записей, на каждую по null что не так делаю?
хотя если выбираю по отдельности за место индекса j указываю цифру строчки всё нормально | |
|
|
|
|
|
|
|
для: web777
(08.09.2010 в 15:32)
| | Знаете, я вот привык штаны одевать как и полагается, вы же хотите одеть их через голову. А потому, мне даже и не охота чего либо обсуждать по этому поводу. Спрашивается - а на кой ляд тогда вы чекбоксы повтыкали? | |
|
|
|
|
|
|
|
для: sim5
(08.09.2010 в 15:38)
| | извиняюсь, чекбоксы не имеют ни какого отношения, они просто остались у меня, т.к. они предназначены для другого функционала - удаления, отмеченные чекбоксы удаляются.
но вы на их не обращайте внимание, хотя мне нужно было конечно убрать чтобы не отвлекали.
Вообщем чекбоксы для этой задачи не имеют ни какого отношения, мне нужно выбрать только колонку с именем где значения Аркадные, Стрелялки и т.п.
из последнего примера подскажите почему выдаёт null в значении, как сделать чтобы выдавало имя, ведь если указывать напрямую подставляя за место индекса j число строки, выводит как и должно | |
|
|
|
|
|
|
|
для: web777
(08.09.2010 в 15:51)
| | Не знаю чего вы там творите, но отправлять значения ячеек для определения чего-то, ну это абсурд какой-то...
<script>
$(document).ready(function() {
$('#sv').click(function(){
alert('Rows: '+$('#order').find('td').length);
$('#order').find('td').each(function(i) {
alert(i+' - '+$(this).text());
});
});
});
</script>
<table id="order">
<tr>
<td>Логические</td>
</tr>
<tr>
<td>Аркадные</td>
</tr>
<tr>
<td>Стрелялки</td>
</tr>
</table>
<input id="sv" type="button" value="Save">
|
| |
|
|
|
|
|
|
|
для: sim5
(08.09.2010 в 16:45)
| | спасибо, примерно что то подобное уже сделал
var trcount = $("tbody tr").size();
var out = "";
if ( trcount > 0) {
var seporator = "::";
$('tbody tr').each(function(){
out += $(this).find('td').eq(1).html();
out += seporator;
});
// Передаем данные на сервер
$.ajax({
type: "POST",
url: "/order",
timeout: 5000,
data: "order=" + out,
success: function(data){$("div#upd-dnd").html(data);},
error: function(data){$("div#upd-dnd").html("Error");}
});
};
|
сейчас всё отлично работает.
Смысл в том что упращает реализацию сиртировки разделов, я применил такой плагин tableDnD
http://www.isocra.com/2008/02/table-drag-and-drop-jquery-plugin/
теперь отсортировав строки, и передав их обработчику, сохраним в том порядке как выставили строки. Порядок обработчиком можно определить по индексу массива. Теперь не нужно делать уже всем надоевшие стрелочки вверх и низ для перемещения разделов.
Таким образом сортировка теперь визуальная и без лишних телодвижений. | |
|
|
|
|
|
|
|
для: web777
(08.09.2010 в 17:14)
| | $("tbody tr") - у вас что единственная таблица на странице?
Не понятно при чем тут сортировка, если вы значение ячеек как есть отправляете на сервер. К тому же, не индексом массива должен руководствоваться сервер, а id разделов. Стрелочки, это дело вкуса, вам никто не запрещает, например, перетаскивать элементы на странице, которые и будут определять конечную сортировку, но опять таки, руководствоваться надо ничем иным, кроме как уникальными номерами разделов. | |
|
|
|