2016-02-16 2 views
1
<html> 
<head> 
<link rel="stylesheet" href="js/jquery-ui-themes-1.11.1/themes/smoothness/jquery-ui.css" /> 
<script type="text/javascript" src="js/jquery-1.11.1.js"></script> 
<script type="text/javascript" src="js/jquery-ui-1.11.1/jquery-ui.js"></script> 
<script> 
$(document).ready(function(){ 
    $(".buttonsPromptConfirmDeleteDepartment").click(function(){ 
     var departmentID = $('input#departmentID').val(); 
     alert(departmentID); 
    }); 
}); 
</script> 
</head> 

<body> 
<?php 
//db connection 

$query = "SELECT * 
      FROM department 
      ORDER BY dept_ID ASC"; 
$result = mysqli_query($dbc, $query); 
$total_department = mysqli_num_rows($result); 

if($total_department > 0) 
{ 
?> 

<table width="600" border="1" cellpadding="0" cellspacing="0" style="border-collapse:collapse"> 
    <tr> 
     <td width="80" align="center">ID</td> 
     <td width="300" align="center">Department</td> 
     <td width="220" align="center">Action</td> 
    </tr> 
<?php   
    while($row = mysqli_fetch_array($result)) 
    { 
?> 
     <tr> 
     <td align="center"><?php echo $row['dept_ID']; ?></td> 
     <td align="center"><?php echo $row['dept_name']; ?></td> 
     <td> 
      <button class="buttonsPromptConfirmDeleteDepartment">Delete</button> 
      <input type="hidden" id="departmentID" value="<?php echo $row['dept_ID']; ?>" />  
     </td> 
     </tr> 
<?php 
    } 
?> 
    </table> 
<?php 
} 
?> 

стол отдел
dept_id               dept_name
                                      Счет
                                      Финансы
                                      Маркетинг
PHP - передать скрытое значение в JQuery

Предположим, что мой отдел таблица только 3 записи.
Мое требование заключается в следующем:
- Нажмите кнопку первого удаления, показать отдел ID = 1
- Нажмите кнопку второй удалить, показать отдел ID = 2
- Нажмите кнопку третьего удалить, показать отдел ID = 3

Однако из моего кода я не могу удовлетворить свои требования.
Выход идентификатора отдела, который я получаю, не зависит от того, какую кнопку я нажал.

Может кто-нибудь мне помочь?

+0

Вы должны иметь 'class' вместо' id' в цикле. При использовании многих атрибутов id, имеющих одинаковое значение, он всегда будет выбирать первый совпадающий элемент 'id'. – Rayon

+0

также являются глобальными и лучше всего избегать. http://www.2ality.com/2012/08/ids-are-global.html –

ответ

1

Нет необходимости использовать скрытый вход, вы могли бы просто использовать button тег вместо:

<?php while($row = mysqli_fetch_array($result)) { ?> 
    <tr> 
     <td align="center"><?php echo $row['dept_ID']; ?></td> 
     <td align="center"><?php echo $row['dept_name']; ?></td> 
     <td> 
      <button type="submit" name="departmentID" class="buttonsPromptConfirmDeleteDepartment" value="<?php echo $row['dept_ID']; ?>">Delete</button> 
     </td> 
    </tr> 
<?php } ?> 

Конечно, в PHP скрипт, который делает обработку формы, доступ к индексу, как вы это обычно:

$id = $_POST['departmentID']; 
// some processes next to it 

Примечание: не забудьте отметить тег <form>.

Дополнительная Примечание: Не забудьте использовать подготовленные заявления:

$sql = 'DELETE FROM department WHERE dept_ID = ?'; 
$stmt = $dbc->prepare($sql); 
$stmt->bind_param('i', $id); 
$stmt->execute(); 
// some idea, use error checking when necessary 
// $dbc->error 
0

Изменить

ID = "DepartmentID"

к

класс = "DepartmentID" и

Изменение

<script> 
$(document).ready(function(){ 
    $(".buttonsPromptConfirmDeleteDepartment").click(function(){ 
    var departmentID = $('input#departmentID').val(); 
    alert(departmentID); 
    }); 
}); 

в

<script> 
$(document).ready(function(){ 
    $(".buttonsPromptConfirmDeleteDepartment").click(function(){ 
    var departmentID = $(this).next('input.departmentID').val(); 
    alert(departmentID); 
}); 
}); 

0

прежде всего dept_id в то время как цикл, и вы используете тот же идентификатор для всех отдела .. еще одна вещь, вы можете получить dept_id на кнопку нажмите, используя jquery .. вот так

$('.buttonsPromptConfirmDeleteDepartment').click(function(){ 
 
dept_id = $(this).next('input').val(); 
 
})

Смежные вопросы