Daten aus DB löschen

dennis-sauer

Erfahrenes Mitglied
Hallo zusammen,

ich bekomme es leider nicht hin, in die u.a. Funktion eine "Löschfunktion" für den Eintrag aus der DB zu integrieren.

Der Javascript-Teil
Code:
		function Delete(data,name,row,type,dataSet){
				var loadpage = dataSet.hdata(0);
				var url = dataSet.hdata(1);
				var table = dataSet.hdata(2);
				var data = data+"&tabel="+table;
		$.confirm({
		'title': 'Best&auml;tigung  erforderlich','message': " <strong>M&ouml;chtest du diesen Eintrag wirklich l&ouml;schen? </strong><br /><font color=red>' "+ name +" ' </font> ",'buttons': {'Ja': {'class': 'special',
		'action': function(){
					loading('&Uumlberpr&uuml;fen');
									 $('#preloader').html('L&ouml;sche...');
									 if(type==0){ row.slideUp(function(){   showSuccess('Success',5000); unloading(); }); return false;}
									  if(type==1){ row.slideUp(function(){   showSuccess('Success',5000); unloading(); }); return false;}
										setTimeout("unloading();",900); 
									   }},'Nein'	: {'class'	: ''}}});}

Ich habe eine Tabelle mit Daten aus der DB und möchte den Benutzer per Klick löschen. Mit Dieser Funktion wird lediglich die Tabellenzeile nach einer Abfrage gelöscht, ich bekomme eine Bestätigung und nach Aktualisierung der Seite ist der Eintrag wieder da - klar, er wird ja nicht aus der DB gelöscht.

Meine Seite, welche den Eintrag löscht sieht folgendermaßen aus. (delete/delete_user.php)

PHP:
if($_POST['id'])
{
$id=$_POST['id'];
$db = new Database("serviceinfo"); // Die txt-Datenbank wird aufgerufen
$resultSet = $db->executeQuery("DELETE FROM benutzerdaten WHERE id = '$id'"); // Der INSERT-Befehl wird ausgeführt
}
Grüße und Dank

Dennis
 
Aus deinem Quelltext lässt sich nur wenig ablesen, da er auch relativ unsauber formatiert ist.
Was soll denn bei Aufruf der Funktion Delete() passieren? Wie ist die Methode Database::executeQuery() implementiert? Hast du dir mal zu Debugging-Zwecken die übergebene ID (also die $_POST-Variable) ausgeben lassen?
 
Hallo Erik,

ich muss zugeben zum Code kann ich nicht viel sagen... Ich habe mir im Internet ein Template gekauft und versuche das nun für meine Bedürfnisse anzupassen.

Also ich nutze eine txt basierte Datenbank, daher die Funktion executeQuery. Die delete Seite funktioniert bestens, ich habe in einer alten Seite folgendes genutzt:

Code:
$(function() {
$(".delete_user").click(function() {
var id = $(this).attr("id");
var dataString = 'id='+ id ;
var parent = $(this).parent();
var trElement = $(parent).parent();
    
$.ajax({
   type: "POST",
   url: "delete/delete_user.php",
   data: dataString,
   cache: false,
 
   success: function()
   {
    if(id % 2)
    {
    trElement.fadeOut('slow', function() {$(this).remove();});
    }
    else
    {
    trElement.slideUp('slow', function() {$(this).remove();});
    }
  }
   
 });
 
return false;
    });
});

Das hat bestens geklappt.

Die neue Funktion (siehe oben) ist aus diesem Template und löscht mir den Eintrag in der zu sehenden Tabelle. Aber ich weiß halt nicht, wie ich es schaffe, das die delete_user.php ausgeführt wird.

Der Code aus dem Template besteht übrigens noch aus einem weiteren Teil.

Code:
    $(".Delete").live('click',function() { 
          var row=$(this).parents('tr');
          var dataSet=$(this).parents('form');
          var id = $(this).attr("id");
          var name = $(this).attr("name");
          var data ='id='+id;
          Delete(data,name,row,0,dataSet); // call function Delete
    });

Und dann noch das, was ich schon geposted habe. Hilft das?

Grüße

Dennis
 

Neue Beiträge

Zurück