Скажем так, сервак хранит строки для которых нужен выбор. Юзер заходит на страницу, и пока делает свой выбор, сервак убирает 1 строку и добавляет новую. Юзер жмет кнопку готово, и все его выборы съезжают и переходят на другие строки.
|
Цитата:
а Юзер жмет кнопку готово, и все его выборы съезжают и переходят на другие строки. , тогда что? И если тут задействованы асинхронные запросы, то это все равно не означает, что нужно использовать хрен знает что вместо того, что для этого уже есть. Вам не кажется что у вас логика в решении задачи хромает? |
Цитата:
Цитата:
[0]-Петя (1)(2)(3) [1]-Вася (1)(2)(3) Пока юзер определяется, сервак считает что строка [0]-Петя больше не актуальна и он её отключает тригером/или удаляет. И добаляет новую строку Коля, получется сервер ожидает данные уже для: [0]-Вася (1)(2)(3) [1]-Коля (1)(2)(3) Это я к тому что использовать индексы массива [0][1][2] вместо конкретных id строк не очень хорошая идея. Цитата:
|
armolov,
:-? <!DOCTYPE html> <html> <head> <title>Untitled</title> <meta charset="utf-8"> <style type="text/css"> .select{ background-color: #228B22; } </style> <script> window.addEventListener("DOMContentLoaded", function() { var trs = document.querySelectorAll("tr"), obj = {}; [].forEach.call(trs, function(tr, i) { var user = tr.dataset.user obj[user] = 0; var tds = tr.querySelectorAll("td"); var temp; [].forEach.call(tds, function(td, a) { var data = td.dataset.select; td.addEventListener("click", function() { if (temp == td) td.classList.toggle("select"); else { temp && temp.classList.remove("select"); temp = td; td.classList.add("select") } obj[user] = td.classList.contains("select") ? data : 0; document.querySelector("p").innerHTML = JSON.stringify(obj); }) }) }); document.querySelector("p").innerHTML = JSON.stringify(obj); }); </script> </head> <body> <p></p> <table> <tr data-user="Петя"> <td data-select="1">1</td> <td data-select="2">2</td> <td data-select="3">3</td> </tr> <tr data-user="Вася"> <td data-select="1">1</td> <td data-select="2">2</td> <td data-select="3">3</td> </tr> </table> </body> </html> |
Цитата:
Код:
[as] => Array Нет, я не против того, что вы решили вместо естественного наворотить искусственного. А рони парень умный, оперативный (он живет на форуме, в каком-то разделе, на раскладушке :) ), он вам и тысячу решений напишет. Да за ради бога, охота граблями лужи разгонять, пожалуйста. Заметьте, что я "вклинился" в беседу джентльменов не по поводу "граблей", а по поводу "связать". И чтобы впредь не нарушать этот диалог, последнее замечание: Цитата:
<table> <tr> <td><input id="chk0" type="checkbox" name="as[12045][0]" /><label for="chk0">Text</label></td> <td><input id="chk1" type="checkbox" name="as[12045][1]" /><label for="chk1">Text</label></td> <td><input id="chk2" type="checkbox" name="as[12045][2]" /><label for="chk2">Text</label></td> </tr> <tr> <td><input id="chk3" type="checkbox" name="as[29356][0]" /><label for="chk3">Text</label></td> <td><input id="chk4" type="checkbox" name="as[29356][1]" /><label for="chk4">Text</label></td> <td><input id="chk5" type="checkbox" name="as[29356][2]" /><label for="chk5">Text</label></td> </tr> <tr> <td><input id="chk6" type="checkbox" name="as[40008][0]" /><label for="chk6">Text</label></td> <td><input id="chk7" type="checkbox" name="as[40008][1]" /><label for="chk7">Text</label></td> <td><input id="chk8" type="checkbox" name="as[40008][2]" /><label for="chk8">Text</label></td> </tr> </table> а по примеру выбора получим Код:
[as] => Array Даже скажу больше - я могу для столбцов использовать индексы, а не ассоциацию, и в этом нет ни какого усложнения, это наоборот может быть выгода, а связать их с полями таблицы, ну так поля таблицы, это ведь индексы в наборе, для связи требуется всего-то использовать функцию пересечения массивов, и получим только те, что выбраны. Вы утверждаете, что использовать форму, это сложно, а куда проще наворотить, а потом решать проблемы. Вот и думаешь, а где же логика. |
Часовой пояс GMT +3, время: 18:00. |