Доброго времени суток!
Суть проблемы.
Есть форма:
<?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: