Доброго времени суток! Суть проблемы. Есть форма:
<?php
echo '<form action="" class="' . $row[1] . '">';
echo '<input id="text" type="hidden" value="' . $row[1] . '">';
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: