2017-08-15 82 views
1

我有一个表像这样的时候:路过​​值的一个控制器点击一个按钮

enter image description here

当我点击删除!按钮,我想将角色ID传递给控制器​​。

在stackoverflow中寻找很多案件后。我刚刚成功地使用JS检索角色ID。

这样的代码:

$(".deleteButton").click(function() { 
    var $row = $(this).closest("tr"); 
    var $text = $row.find("td:first-child").text(); 

    // Let's test it out 
    alert($text); 
}); 

但问题是,我不怎么传回的按钮,这样的话该按钮可以将它传递给控制器​​。

有没有简单的方法将它传递给控制器​​?也许没有先检索角色ID,当点击按钮时,传递的值和控制器立即被调用?

这是我的代码:

<table class="table" id="myTable"> 
    <thead class="text-primary"> 
     <th class="col-md-1">ID Role</th> 
     <th class="col-md-3">Role</th> 
     <th class="col-md-3">Jumlah Member</th> 
     <th></th> 
    </thead> 

    <tbody> 
    <?php 
     foreach($result as $row) { ?> 
     <tr> 
      <td><?php echo $row->id_role ?></td> 
      <td><?php echo $row->role ?></td> 
      <td><?php echo $row->jumlah ?></td> 
      <td> 
       <button type="button" class="btn btn-success btn-sm editButton">Edit!</button> 
       <button type="button" class="btn btn-danger btn-sm deleteButton">Delete!</button> 
      </td> 
     </tr> 
     <?php 
     } ?> 
    </tbody> 
</table> 
+0

在你的例子中,你的ID为“text” - 变量。您应该阅读关于将变量传递给PHP而无需重新加载页面的Ajax。 –

回答

1

你有使用JavaScript?如果不是,这是一种形式

<form action="path/to/your/controller" method="post"> 
<table class="table" id="myTable"> 
<!-- thead, etc --> 
<tbody> 
foreach($result as $row) : ?> 
<tr> 
    <td><?= $row->id_role ?></td> 
    <td><?= $row->role ?></td> 
    <td><?= $row->jumlah ?></td> 
    <td> 
    <button type="submit" name="edit" value="<?= htmlspecialchars($role->id_role) ?>" 
      class="btn btn-success btn-sm editButton">Edit!</button> 
    <button type="submit" name="delete" value="<?= htmlspecialchars($role->id_role) ?>" 
      class="btn btn-danger btn-sm deleteButton">Delete!</button> 
    </td> 
</tr> 
<?php endforeach ?> 
</tbody> 
</table> 
</form> 

一个简单的任务,那么你的控制器将接受或$_POST['edit']$_POST['delete']与角色ID作为值。

如果您有兴趣确保您的表单可能出现跨网站请求伪造攻击,CodeIgniter has a built-in solution


否则,我只想在id_role属性添加到该按钮,如

<button type="button" class="btn btn-danger btn-sm deleteButton" value="<?= htmlspecialchars($role->id_role) ?>">Delete!</button> 

,并在你的JS

$('.deleteButton').on('click', function(e) { 
    var roleId = this.value 
    $.ajax({ 
    url: '/roles/' + roleId, // assuming a REST API 
    method: 'DELETE' 
    }).done(function() { 
    alert('Deleted role ' + roleId); 
    }) 
}) 
0

你的角色ID分配给另一个<td>这是一个稍微长一些,以获得jQuery的id。你很容易得到点击按钮ID只是给一个像。

<button type="button" id="<?php echo $row->id_role ?>" class="btn btn-danger btn-sm deleteButton">Delete!</button> 

,然后就可以轻松搞定的具体行ID

$(".deleteButton").click(function() { 
    var $text= $(this).attr("id"); 

    alert($text); 
}); 

,然后你可以通过AJAX发送ID来控制。