如何使用php和javascript从循环表中获取ID值

时间:2013-11-28 13:50:44

标签: php jquery

我一直在努力研究如何使用php和mysql创建一个表,这是我到目前为止所得到的......

PHP: -

foreach($result as $res){
        echo '<tr><td style="display:none;"><p id="ID">' . $ID . ' </p></td><td>' . $res['NAME'] . '</td>
        <td>' . $res['option2'] . '</td>
        <td>' . $res['Option3'] . '</td>
        <td>' . $res['Option4'] . '</td>
        <td>' . $res['Option5'] . '</td>
        <td class="deleteBtn"><button class="btn btn-danger btn-xs" id="deleteBtn">Delete</button></td></tr>';
    }

Javascript: -

$('button#deleteBtn').click( function(){

data = $('p#ID').html();
alert(data);

// window.location('admin.php?link=LF1'+data);
});

当我点击deleteBtn我想删除按钮所在的行,因此我需要ID ... 我如何获得$ ID的值。我的jquery只提醒每个按钮的第一个ID ...

谢谢!

3 个答案:

答案 0 :(得分:0)

您可以使用data属性来保存您的ID。比如data-id="1"

foreach($result as $res) {
        echo '<tr><td style="display:none;"><p data-id="'.$ID.'" id="ID"'.$ID.' data-id="">' . $ID . ' </p></td><td>' . $res['NAME'] . '</td>
        <td>' . $res['option2'] . '</td>
        <td>' . $res['Option3'] . '</td>
        <td>' . $res['Option4'] . '</td>
        <td>' . $res['Option5'] . '</td>
        <td class="deleteBtn"><button onclick="delete("ID'.$ID.')" class="btn btn-danger btn-xs" id="deleteBtn">Delete</button></td></tr>';

    }

现在你可以这样: -

$('button#deleteBtn').click( function(){
    data = $(this).parents('tr').data('id');
    alert(data);
});

答案 1 :(得分:0)

看起来如果你有超过1行,你将不可避免地得到许多具有相同ID的元素。更清洁的版本将是:

更简单的说,您只需使用.closest()

即可

<强> PHP:

echo '<tr id='.$ID.'><td style="display:none;"><p id="ID">' . $ID . ' </p></td><td>' . $res['NAME'] . '</td>
        <td>' . $res['option2'] . '</td>
        <td>' . $res['Option3'] . '</td>
        <td>' . $res['Option4'] . '</td>
        <td>' . $res['Option5'] . '</td>
        <td class="deleteBtn"><button class="delete btn btn-danger btn-xs">Delete</button></td></tr>'

<强> jQuery的:

$('button.delete').click( function(){
    var toDelete = $(this).closest('tr').attr('id');
    alert(toDelete);
});

答案 2 :(得分:0)

首先,id应该是唯一的,因此您不能为每一行执行id="ID"

尝试:

foreach($result as $res){
  echo '<tr data-id="' . $ID . '">';
    // ...
  echo '</tr>';
}

在JavaScript中:

$('button#deleteBtn').click( function(){
  var id = $(this).parents('tr').data('id');
  alert(id);
}