2017-08-15 18 views
1

ボタンをクリックすると、コントローラに​​値の1を渡します!ボタンを押すと、役割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は "テキスト" - 可変です。ページをリロードせずに変数をPHPに渡すことについてAjaxについて読んでください。 –

答えて

1

はJavaScriptを使用する必要がありますか?そうでない場合、これはあなたのコントローラは、値としての役割のIDで$_POST['edit']または$_POST['delete']のいずれかを受け取ることになるフォーム

<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> 

のための簡単な作業です。

可能性のあるクロスサイトリクエスト偽造攻撃からフォームを保護する場合は、CodeIgniter has a built-in solution


そうでなければ、私はちょうどあなたが別の<td>にロールIDを割り当て、ボタンに例えば

<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_roleプロパティを追加しますjQueryでidを取得するのに少し時間がかかります。あなたはクリックボタンのidを簡単に得ることができます。

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

、その後、あなたは簡単に

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

    alert($text); 
}); 

特定の行IDを取得することができ、その後、あなたは、AJAXによって、コントローラにそのIDを送信することができます。

関連する問題