0

Ich möchte Daten in einer Zeile in einer Tabelle bearbeiten/löschen, indem Sie das 0qm-Kontextmenü Jquery onclick Ereignis verwenden. Das Problem ist, wenn ich in eine Zeile klicke, wird die letzte Zeile abgerufen und nicht die ausgewählte Zeile.Daten über ausgewählte Zeile über das Kontextmenü abrufen

Tabelle:

<table id="ppmpsupplies" class="table table-bordered table-hover" cellspacing="0" width="100%"> 
      <thead> 
      <tr> 
       <th>Code</th> 
       <th>General Description</th> 
       <th>Unit</th> 
       <th>Quantity</th> 
       <th>Estimated Budget</th> 
       <th>Mode of Procurement</th>     

      </tr> 
      </thead> 
      <tbody> 
      <?php foreach($items as $item){?> 
      <tr> 
      <td><?php echo $item->id;?></td> 
      <td><?php echo $item->description;?></td> 
      <td><?php echo $item->unit;?></td> 
      <td><?php echo $item->quantity;?></td> 
      <td><?php echo $item->budget;?></td> 
      <td><?php echo $item->mode;?></td>      
      </tr> 
      <?php }?> 

     </tbody> 
     <tfoot> 
      <td colspan="3"></td> 
      <td>Total</td> 
      <td></td> 
     </tfoot> 
     </table> 

Kontextmenü:

     sep3: "----", 
         "edit": { 
          name: "Edit", 
          icon: "fa-pencil-square-o", 
          callback: function(itemKey, options) { 
          $('#ppmpsupplies tbody tr').on('click', edit_item(<?php print $item->id ?>)); 
          // var m = "clicked: " + itemKey; 
          // window.console && console.log(m) || alert(m); 
          return true; 
          } 
         }, 
         sep4: "----", 
         "delete": { 
          name: "Delete", 
          icon: "fa-trash-o", 
          callback: function(itemKey, options) { 
          $('#ppmpsupplies tbody tr').on('click', delete_item(<?php print $item->id ?>));         
          return true; 
          } 
         }, 

source

Antwort

1

Verwenden data-* die ID, die Sie bearbeiten möchten passieren Attribute/Löschen in Ihrem JS-Code.

Ändern Sie Folgendes.

Von:

<tbody> 
<?php foreach($items as $item){?> 
<tr> 

Um

<tbody> 
<?php foreach($items as $item){?> 
<tr data-id="<php print $item->id?>"> 

dann Ihre JS aktualisieren Sie den .data('id') Wert zu ziehen.

Ändern Sie Folgendes.

Von:

// Edit 
$('#ppmpsupplies tbody tr').on('click', edit_item(<?php print $item->id ?>)); 

// Delete 
$('#ppmpsupplies tbody tr').on('click', delete_item(<?php print $item->id ?>)); 

An:

// Edit 
var that = $(this); 
$('#ppmpsupplies tbody tr').on('click', edit_item(that.data('id'))); 

// Delete 
var that = $(this); 
$('#ppmpsupplies tbody tr').on('click', delete_item(that.data('id'))); 
+0

Ich bin dankbar, dass Sie mir helfen. Es löst mein Problem mit diesem Plugin. – Larigyn

Verwandte Themen