Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Как отследить данные, добавляемые в многосточный select?

Константин Ефименко Гуру (3721), закрыт 4 года назад
У меня есть 2 select(а), при помощи кнопок, данные перемещаются из одной колонки в другую. Необходимо отследить данные, передаваемые в правую колонку, для дальнейшей отправки и обработки на php.

Сейчас я это делаю так:
$('.right').on("DOMNodeInserted", "option", function() {
var fio = $('.right option').val();
alert("Test: " + fio);
});

Вот пример того, что я пытаюсь сделать: https://jsfiddle.net/2go1fc9b/

Конечно это работает не правильно, ведь сейчас данное событие передаёт данные самой первой option(относительно левой колонки), который был передан в правую колонку.

Как получить данные, которые пользователь передаёт (кнопками) в правую колонку, в данный момент?
Дополнен 4 года назад
Если отправлять данные в таком виде, то я оправляю столько запросов, сколько строк было выбрано:

$('.right').on("DOMNodeInserted", "option", function() {
var fio = $(this).val();
var myString = JSON.stringify(fio);
$.post("ajax_sim.php", "myString=" + myString, function (data) {
alert("Test: " + data);
});
});

Как сформировать сроку и отравить один запрос, со всеми строками?
Лучший ответ
Фредерика Бернкастель Мудрец (10651) 4 года назад
var fio = $(this).val()
Константин ЕфименкоГуру (3721) 4 года назад
Действительно, так намного лучше. Но как мне теперь это дело положить в JSON строку, если я не знаю сколько сток отправлю на обработку? Я понимаю, что здесь нужен цикл. Но как всё же правильно сделать? У меня целая беда с этими циклами)))

Ну вот к примеру, так я разбираю строку JSON:

$.post("ajax_sim.php", "fio-str=" + fio, function (data) {
for (var i = 0; i < data.length; i++) {
var counter = data[i];
$('.left').append('<option data-num="'+i+'" value="'+counter+'">'+counter+'</option>');
}
}, "json");

function (data) {} - это функция с ответом от php, для дальнейшей обработки на js.
"json" - в конце, это то, в каком формате $.post ожидает ответ от php.
Константин ЕфименкоГуру (3721) 4 года назад
Думаю, чтобы собрать строку, будет необходим JSON.stringify().
Остальные ответы
Голова Робота Просветленный (36328) 4 года назад
Смешной вопрос. Данные предаёт не пользователь, а твоя программа. Пользователь только нажимает кнопки.
Твой вопрос должен звучать так: "как отследить данные, которые я сам предаю в своей программе?"
Константин ЕфименкоГуру (3721) 4 года назад
Думаю вопрос не в том, как правильно его сформулировать, как решить сию задачу. Если вам просто нечего делать, думаю вам самое место в другой теме.
Похожие вопросы