Задать вопрос

Как сделать так чтобы javascript отрабатывал не по верхней строке, а по каждой строке таблицы?

Здравствуйте.
Помогите, пожалуйста, разобраться новичку.

Есть 2 файла: index.php и function.php

В index.php представлена таблица с заявками. У каждой заявки есть кнопку удаления (смены статуса), при нажатии на которую должно отрабатываться отправка данных в файл function.php без перезагрузки страницы, а только изменение блока ....

Вопрос: Почему отрабатывается только кнопка из верхней строки таблицы? Вторая, третья и последующие не работают...

Файл index.php
<script type="text/javascript">
$(document).ready(function(){

	$('#stat_del').click(function(){
		if($('#stat_del').val()!=''){
			$.post('http://site.ru/function.php', {
				'fin_plus': 30,
				'stat_del': $('#stat_del').val(),
			},
			function(data){ $('#fin_info').html(data); });
		}
	});
			
});
</script>


<div id="fin_info">
<table>
<tr><th>Дата</th><th>Заявка</th><th></th></tr>
<tr><td class="date">'11.05.1985</td><td>Заявка №1</td><td><button id="stat_del" class="btn" value="1">удалить</button></td></tr>
<tr><td class="date">'12.05.1985</td><td>Заявка №2</td><td><button id="stat_del" class="btn" value="1">удалить</button></td></tr>
<tr><td class="date">'13.05.1985</td><td>Заявка №3</td><td><button id="stat_del" class="btn" value="1">удалить</button></td></tr>
</table>
</div>


Файл function.php
<?php
if($_POST['fin_plus']=='30') {
	
$id = $_POST['stat_del'];

	$query_ins = "UPDATE appli SET status='1' WHERE id='$id'";
	$res_ins = mysql_query( $query_ins );
	
?>
	<div id='appli_txt'>ЗАЯВКА ПЕРЕМЕЩЕНА В УДАЛЁННЫЕ</div>
<?php
}
?>
  • Вопрос задан
  • 101 просмотр
Подписаться 1 Простой Комментировать
Решения вопроса 1
alexey-m-ukolov
@alexey-m-ukolov Куратор тега JavaScript
Идентификатор должен быть уникальным, на то он и идентификатор. У вас же все кнопки "зовутся" одинаково, поэтому и обработчик навешивается только на первую попавшуюся.
Замените id на class, адаптируйте код обработчика под работу с объектом, на котором произошло событие (в jQuery это будет $(this)), а не хардкодными элементами DOM и всё заработает как надо.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы