2017-03-13 6 views
0

Fehler der letzte Datensatz für PHP zu löschen 5.5.9jqGrid Fehler beim Löschen des letzten Datensatz

colModel: [ 
    { 
     name: '', 
     formatter: 'actions', 
     formatoptions: { 
      keys: true, 
      afterSave: function() { 
       $('#table_grid').trigger('reloadGrid'); 
      } 
     } 
    } 
],   

loadComplete:function(data) 
{ 
    alert(data.records); 

    //PHP 5.3.13 $responce->records = 0 
    //PHP 5.5.9 error empty  
} 

Was falsch ist, helfen

+0

Der Code-Fragment, das Sie auf dem Laufenden, keine Löschoption enthalten. Der einzige Fehler in Ihrem Code ist die Verwendung eines leeren Spaltennamens: 'name: '''. Sie sollten in alle Fragen über jqGrid ** die Version ** von jqGrid aufnehmen, die Sie verwenden (können) und die Verzweigung von jqGrid ([free jqGrid] (https://github.com/free-jqgrid/jqGrid), kommerziell [Guriddo jqGrid JS] (http://guriddo.net/?page_id=103334) oder ein altes jqGrid in Version <= 4.7). Andere Optionen wie 'rowNum' könnten wichtig sein, wenn Sie eine Retro-Version von jqGrid verwenden. Es ist besser, wenn Sie mehr vollen JavaScript-Code und die Testdaten (mindestens 2 Zeilen) posten – Oleg

Antwort

0

Ich benutze jquery.jqGrid.min 5.2.0

<script type="text/javascript"> 
$(document).ready(function() 
{ 
    $('#table').jqGrid(
    { 
     mtype:'POST', 
     datatype:'json', 
     url:'data.php', 
     editurl:'data.php', 
     rowNum:50, 
     pager:'#pager', 
     colModel:[ 
      {name:'action',formatter:'actions',formatoptions:{keys:true,afterSave:function(){$('#table').trigger('reloadGrid');}}}, 
      {name:'name',editable:true} 
     ], 
     loadComplete:function(data) 
     { 
      if(data.records >= 0)//error if PHP 5.5.9 
      { 
      } 
      //If i use PHP 5.3.13 function returns 0 (deletes the last record) 
      //If i use PHP 5.5.9 function nothing returns (Do not delete the last record)    
     } 
    }); 
    $('#table').jqGrid('inlineNav','#pager',{edit:false,addtext:'ADD',savetext:'SAVE',canceltext:'CANCEL',addParams:{position:'last',addRowParams:{keys:true,aftersavefunc:function(){$('#table').trigger('reloadGrid');}}}}); 
}); 
</script> 

//reading data.php 
$page = $_POST['page']; 
$limit = $_POST['rows']; 

$count = $db->query('SELECT COUNT(*) FROM siri')->fetchColumn(); 

if($count > 0){$total_pages = ceil($count/$limit);}else{$total_pages = 0;} 
if($page > $total_pages){$page = $total_pages;} 
$start = $limit*$page-$limit; 
if($start < 0){$start = 0;} 

$res = $db->query('SELECT id, name FROM siri LIMIT '.$start.', '.$limit); 

$i=0; 
while($row = $res->fetch(PDO::FETCH_ASSOC)) 
{ 
    $return->rows[$i]['id'] = $row['id']; 
    $return->rows[$i]['cell'] = array('',$row['name']); 
$i++; 
} 

$return->page = $page; 
$return->total = $total_pages; 
$return->records = $count; 

echo json_encode($return); 

//Deleting data.php 
$id = (int)$_POST['id']; 
$db->exec('DELETE FROM siri WHERE id = '.$id); 

Alles funktioniert, jqGrid ist gut

Aber wenn ich PHP 5.5.9

Der letzte Eintrag im Browser nicht

gelöscht

Nachdem die Seite aktualisiert wird, verschwindet es

zu löschen, verwende ich Inline-Aktionen

Aber wenn ich alle PHP 5.3.13 keine Fehler verwenden gut ist

Und ich brauche PHP 5.5.9 sehr sehr

+0

Dann ist dies der Fehler des jqGrid-Plugin Wenn niemand weiß – Natasha

Verwandte Themen