Содержание:
Как использовать один js-обработчик для получения данных с разных форм?
Доброго времени суток!
Суть проблемы.
Есть форма:
В это коде $row[1] — это переменная, которая используется для разделения одной формы от другой такой же формы.
Сам обработчик:
Если одна форма проблем нету, если больше одной формы — то он все равно выводит данные от первой формы. Видимо не видит в теге form имя класса. Как поправить код, что можно было получить данные с разных форм используя один и тот же обработчик?
Суть проблемы.
Есть форма:
<?php echo '<form action="" class="'.$row[1].'">'; echo '<input id="text" type="hidden" value="'.$row[1].'"></input>'; echo '<input onclick="send();" value="'.$row[1].'" type="button">'; echo '</form>'; ?>
В это коде $row[1] — это переменная, которая используется для разделения одной формы от другой такой же формы.
Сам обработчик:
<script> function send() { $form = $(this); //Получаем параметры var text = $('#text').val() // Отсылаем параметры $.ajax({ type: "POST", url: "/action.php", data: "text="+text, //При удачном завершение запроса - выводим то, что нам вернул PHP success: function(html) { //предварительно очищаем нужный элемент страницы $("#response").empty(); //и выводим ответ php скрипта $("#response").append(html); } }); } </script>
Если одна форма проблем нету, если больше одной формы — то он все равно выводит данные от первой формы. Видимо не видит в теге form имя класса. Как поправить код, что можно было получить данные с разных форм используя один и тот же обработчик?
HTML-код лучше не смешивать с JavaScript.
Для того чтобы к кнопкам добавить обработчик, их как-то нужно индентифицировать.
Например, к ним можно давить класс send:
Кроме этого, давать элементов формы имена (если их тем более будет несколько и они должны иметь одинаковые поля) необходимо с помощью атрибута name:
Пример, как можно добавить обработку события click для кнопок, имеющих класс send: