2016-04-26 12 views
-1

Ich habe diese Ajax-Anfrage, die durchläuft einen Speicher und löscht alle ausgewählten Datensätze.Löschen von Datensätzen aus dem Geschäft mit Checkbox Auswahl

Code

Ext.Ajax.request({ 
    url: 'system/index.php', 
    method: 'POST', 
    params: { 
     class: 'LicenseFeatures', 
     method: 'delete', 
     data: Ext.encode({ 
     feature_id: (function(){ 
       var e = ""; 
       var sel = Ext.getCmp('featureGrid').getSelection(); 
       var c = 0; 
       for(var i in sel) { 
        var x = (c == 0) ? e = sel[i].data.feature_id : e += "," + sel[i].data.feature_id; 
        c++; 
       } 
       return e; 
      })() 
    }) 

}, 
       success: function(response){ 
    Ext.MessageBox.alert('Status', 'Record(s) has been deleted.'); 
    Ext.getStore('LicenseFeaturesStore').reload(); 
}, 
    failure: function(){ 
     Ext.MessageBox.alert('Status', 'Failed to delete records.'); 
    } 
}); 

Derzeit ruft der Code 1-ID aus dem Netz und löscht sie. Was ich tun muss, ist, zwei IDs aus dem Raster zu bekommen, da ich eine bestimmte SQL in der Datenbank ausführen muss. Die SQL benötigt zwei Eingänge, hier ist die sql

public function delete($vars){ 
$sql = "DELETE FROM `LicenseFeatures` WHERE feature_id in({$vars->data->feature_id}) AND license_id in({$vars->data->license_id})"; 
if($result = $vars->db->query($sql)) { 
    echo json_encode(array("success" => true,"sql"=>$sql)); 
} else { 
    echo json_encode(array("success" => false)); 
} 
} 
+0

Wenn ich nicht klar erklärt habe bitte sagen Sie so –

+0

Nicht ganz sicher, was Sie meinen. Sprechen Sie über das Attribut license_id, das Sie in der SQL-Abfrage verwenden? – hansn

+0

ja genau, ich muss dieses Attribut zusammen mit dem Attribut feature_id senden –

Antwort

0

Versuchen Sie, und ändern Sie die Dateneigenschaft zu diesem.

data: Ext.encode((function(){ 
    var feature_id, 
     licence_id; 
    var sel = Ext.getCmp('featureGrid').getSelection(); 
    var c = 0; 
    for(var i in sel) { 
     if (c == 0) { 
      feature_id = sel[i].data.feature_id; 
      licence_id = sel[i].data.licence_id; 
     } else { 
      feature_id += "," + sel[i].data.feature_id; 
      licence_id += "," + sel[i].data.licence_id; 
     } 
     c++; 
    } 
    return { 
     feature_id: feature_id, 
     licence_id: licence_id 
    }; 
})()) 
+0

Seine Arbeit, aber nicht bestimmte Datensätze zu löschen scheint alle Datensätze mit diesen Funktionen zu löschen, kompliziert zu erklären, aber ich wird durcharbeiten –

+0

Das ist genau das, was Sie sagen, es zu tun. Wenn Sie nur zwei Datensätze löschen möchten, müssen Sie eine Spalte finden, die für diese Datensätze eindeutig ist. – hansn

+0

Ich habe es funktioniert, danke –

Verwandte Themen