Kontrollabfrage Löschen

Grille

Erfahrenes Mitglied
Hallo ...

Ich habe eine Homepage mit verschiedenen Datensätzen. Es soll möglich sein die Datensätze zu löschen. Dafür gibt es einen "Lösch-Button".

Das funktioniert auch alles sehr gut, doch ich hätte gerne noch ein aufpoppendes Fenster mit der Meldung/Abfrage: "Willst du diesen Datensatz wirklich köschen? [ja] [nein]" ...

genau so ist es, wenn man bei PHPmyAdmin sich Datensätze einer Tabelle anzeigen lässt, und dann auf das rote "Löschkreuz" klickt ... dann kommt ein "Windows-Meldefenster" mit der Bestätigungsfrage.

Weis jemand wie man das umsetzt? Funktioniert es dann auch bei den MAC-Freunden?

Gruß,
Grille
 
Hallo Grille,

Ist mit nem kleinen JavaScript schnell gemacht:
HTML:
<script language="JavaScript">
function sicherheitsfrage(){
	var auswahl = window.confirm('Wirklich löschen?');
	if(auswahl) {
		// OK wurde geklickt
		document.formularname.submit();
	}
	else {
		// Abbrechen wurde geklickt
	} 
}
</script>
<form name="formularname">
  <input type="button" value="Löschen" onClick="sicherheitsfrage()">
</form>
Bitte ins JS Forum verschieben!

MfG
 
Du kanst Popup fenster mit hilfe von Javascript öffnen. Allerdings funktioniert das dann nicht wenn der User Javascript ausgeschaltet.

Eine andere Möglichkeit ist mir auch nicht bekannt da es ja Client mässig ausgeführt werden muß und eben Server seitig nicht steuerbar ist.

Mfg Splasch
 
PHP:
if( $_SERVER['REQUEST_METHOD'] == 'POST' ) {
	if( isset($_POST['confirm']) ) {
		// Datensatz löschen
	} else {
		echo '<form action="" method="post">';
		echo '<input type="hidden" name="action" value="delete">';
		echo '<input type="hidden" name="id" value="…">';
		echo '<input type="hidden" name="confirm" value="1">';
		echo 'Möchten Sie den Datensatz wirklich löschen?';
		echo '<input type="submit" value="Ja"> <a href="">Nein</a>';
		echo '</form>';
	}
} else {
	// Ausgabe der Datensätze
}
 
Hallo Gumbo ...
Ich verstehe den Code nicht richtig, kannst du mir bitte kurz sagen was das Konstrukt macht?

Ist das ein extra Fenster, oder wird das als Schritt zwischengeschoben?

Danke für die Tips ... vielleicht muss ich den JavaScript-Weg gehen.

@drucko

Leider kenne ich mich nicht mit JS aus. Ich grübel gerade bei deinem Vorschlag nach, wie ich PHP dann die Variable weitergebe (die BeitragsID) damit der auch weis, welchen Beitrag der Löschen soll. zur zeit sieht der button so aus:

PHP:
<a href="index.php?org_delete=Beitrag05"><img src='images/schaltflaechen/gvb_15x15_delete.gif'></a>

ich weis gerade nicht wie ich da die "sicherheitsfrage()" mit einbringen kann.
 
Zuletzt bearbeitet:
HTML:
<script language="JavaScript">
function sicherheitsfrage(fname){
	var auswahl = window.confirm(fname+' wirklich löschen?');
	if(auswahl) {
		// OK wurde geklickt
		document.forms[fname].submit();
	}
	else {
		// Abbrechen wurde geklickt
	} 
}
</script>

<form name="dbID_07">
  <input type="button" value="Löschen" onClick='sicherheitsfrage("dbID_07")'>
  <input type="hidden" name="entry_id" value="7">
</form>
<form name="dbID_54">
  <input type="button" value="Löschen" onClick='sicherheitsfrage("dbID_54")'>
  <input type="hidden" name="entry_id" value="54">
</form>
In der Ausgabeschleife für deine DB-Einträge immer entsprechend benennen lassen,
mit dem "hidden"-Feld kannst du dann im Folgescript den Eintrag identifizieren.
Das Javascript sendet nur eins der <form>s ab, also gibts da imho kein Durcheinander!

Gumbos Variante wäre in PHP - somit Serverseitig und ja, es wird als weiterer Schritt dazwischengeschoben, aber würde dann natürlich auch bei deaktiviertem Javascript funktionieren!

MfG
 
Gumbos Script arbeitet Serverseitig. Wenn das Formular abgeschickt, der Confirm-Button aber nicht betätigt wurde, wird das Formular mit der Bestätigungsmaske ausgegeben. Wenn dann auf Ja geklickt wird, wird alles weitere ausgeführt, sprich, du kannst die Datensätze löschen.

Für eine Javascript-Confirmbox reicht folgendes:
PHP:
<a href="loesch_link.php" onClick="return confirm('Wollen Sie diesen Datensatz wirklich l&ouml;schen?');"><img src="loeschen.gif"></a>
 
Danke für die verschiedenen Möglichkeiten. Ich bin noch hin- und hergerissen welche ich benutzen sollte. Aber das muss ich mit mir ausmachen ...
 
Die Bestätigung kann auch per JavaScript erfolgen. Dazu müsstest du das Bestätigungsformular mit JavaScript generieren und anschließend versenden, etwa:
Code:
function confirmDeletion( id )
{
	var confirmation = confirm("Möchten Sie den Datensatz wirklich löschen?");
	if( !confirmation ) {
		return false;
	} else {
		var newFormElement = document.createElement("form");
		newFormElement.setAttribute("action", "");
		newFormElement.setAttribute("method", "post");
		var newInputElement = document.createElement("input");
		newInputElement.setAttribute("type", "hidden");
		newInputElement.setAttribute("name", "action");
		newInputElement.setAttribute("value", "delete");
		newFormElement.appendChild(newInputElement);
		var newInputElement = document.createElement("input");
		newInputElement.setAttribute("type", "hidden");
		newInputElement.setAttribute("name", "id");
		newInputElement.setAttribute("value", id);
		newFormElement.appendChild(newInputElement);
		var newInputElement = document.createElement("input");
		newInputElement.setAttribute("type", "hidden");
		newInputElement.setAttribute("name", "confirm");
		newInputElement.setAttribute("value", "1");
		newFormElement.appendChild(newInputElement);
		var newInputElement = document.createElement("input");
		return newFormElement.submit();
	}
}
Möglicherweise muss das generierte Formular auch erst noch ins DOM eingegliedert werden.
 
Zurück