부트 스트랩 아코디언을 사용하고 있습니다. 각 행을 확장하여 일부 추가 정보와 데이터베이스에서 해당 행을 삭제해야하는 버튼을 포함하는 '세부 정보 섹션'을 표시 할 수 있습니다. 행 ID와 이름이 PHP를 사용하여 할당되고 이것은 내 문제를 일으키는 것 같습니다. 숨겨진 필드를 사용하면 이름을 표시 할 수 있지만 항상 아코디언의 마지막 행의 이름입니다.버튼에서 확장 된 아코디언 행의 Div 이름을 얻는 방법
PHP를 사용하면 어떤 행이 확장되어 있는지 감지하고 해당 div의 이름을 얻을 수 있습니까?
PHP/HTML
<?php
if (isset($_POST['btnDelete'])) {
$idnbr = $_POST['hid'];
echo $idnbr; // No matter which row is selected, always echoes last row's name
}
?>
<div id="div1">
<?php
// SQL and SQL connection stuff
while ($row = odbc_fetch_array($data)) {
?>
<div class="accordion-heading">
<a class="accordion-toggle" data-toggle="collapse" data-parent="#div1"
href="#<?php echo $row['idnbr']; ?>">Delete</a>
</div>
<div id="<?php echo $row['idnbr']; ?>" name="<?php echo $row['idnbr']; ?>"
class="accordion-body collapse">
<input type="hidden" id="hid" name="hid"
value="<?php echo $row['idnbr']; ?>">
</div>
<!-- Accordion body -->
<div>
<input class="btn" type="submit" name="btnDelete"
id="btnDelete" value="Delete">
</div>
<?php
}
?>
</div>
JS
// Hides/shows correct row
$('.accordion-toggle').click(function() {
var $acc = $('#div1');
$acc.on('show', '.collapse', function() {
$acc.find('.collapse.in').collapse('hide');
});
});
$('input#btnDelete').click(function() {
// Get the id of the selected row
var $selrow = $('#div1').find('.collapse.in');
var $attrid = $selrow.attr('name');
if (!confirm("Are you sure you want to Delete?")) {
event.preventDefault();
return;
} else {
$('#hid').val($attrid);
alert($attrid'); // Able to alert the correct row
}
});
내 jQuery를에
, 나는 숨겨진 필드의 값을 설정 한 후, 내가 게시에서 페이지를 방지 경우 콘솔에서 값을 확인하십시오. 페이지를 게시하고 콘솔에서 HF 값을 확인할 때, 삭제를 클릭 한 행과 상관없이 항상 첫 번째 행의 이름입니다. 따라서 마지막 행의 이름이 반향되고 첫 번째 행의 이름이 숨겨진 필드로 설정됩니다.
그래서 위의, 당신은 페이지의 3 아코디언 행 (제품 설명 1, 제품 설명 2, 제품 설명 3)를 참조 할 것 예를 들어 DB를 사용하여 DB
Desc | idnbr
-------------------
Desc 1 | 10
Desc 2 | 20
Desc 3 | 30
. 내가 또는 정확한 값을 에코하기 위해 어떻게해야합니까 무엇
Alert: 20
Hidden Field: 10
Echo: 30
나는 완전히 이것에 대해 갈거야 : 나는 두 번째 행 (제품 설명 2)를 확장하고 삭제를 클릭하면 이것은 내가 지금 무엇을 얻을 잘못된? 다음
<input class="btn" type="submit" name="btnDelete<?php echo $row['idnbr']; ?>" id="btnDelete" value="Delete">
과 같은
정말 고마워요! 정확히 내가 필요로하는 것을합니까! – Brian