php.de

Zurück   php.de > Webentwicklung > JavaScript, Ajax und mehr

JavaScript, Ajax und mehr dynamisches Scripten und Interaktion auf Clientebene

Thema geschlossen
 
LinkBack Themen-Optionen Thema bewerten
Alt 04.06.2010, 12:46  
Neuer Benutzer
 
Registriert seit: 15.12.2009
Beiträge: 24
PHP-Kenntnisse:
Anfänger
TacoMe befindet sich auf einem aufstrebenden Ast
Standard onClick window.confirm, nichts passiert

Grüße,

Ich versuche über einen Link einen Datensatz aus meiner Datenbank zu löschen. Funktioniert ganz gut. Aber wie das mit dem löschen so ist, sollte man doch gefragt werden, ob man das wirklich tun möchte.

Dazu hab ich folgendes geschrieben:

javascript:
Code:
function deleteData(type,title,URL) {
	if (type == 'delete') {
		text = 'Wollen Sie die News mit dem Titel "'+title+'" wirklich löschen?';
	}
	if (type == 'content') {
		text = 'Wollen Sie den Inhalt mit dem Namen "'+title+'" wirklich löschen?';
	}
	if (window.confirm(text)) {
		location.href = URL;
	}
}
Seiten-Auszug:
Code:
<script type="text/javascript" src="../functions/deletedata.js"></script>

<a href="send_news.php?delete=1" onclick="return deleteData(news,'Neue HP',this.href);" target="_self">
	<img src="http://www.php.de/images/delete.png" border="0" height="16" width="16">
</a>
leider kommt keine Meldung zum bestätigen des löschens. Er geht sofort auf die nächste Seite.
FireBug kann mir nich sagen, was ich falsch mache. Kann es einer von euch?

Geändert von TacoMe (04.06.2010 um 13:22 Uhr).
TacoMe ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 04.06.2010, 13:31  
Moderator
 
Benutzerbild von Chriz
 
Registriert seit: 11.05.2008
Beiträge: 6.266
Chriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer Anblick
Standard

Hallo,

return deleteData() sollte je nach Auswahl von window.confirm() ein TRUE oder FALSE zurückliefern. Das tut es nicht (return void/null). Ein location.href ist ebenfalls nicht notwendig, da du ja den href ausführen möchtest, wenn der Benutzer confirm() bestätigt hat.

Code:
function deleteData(type,title) { // URL entfernt
	if (type == 'delete') {
		text = 'Wollen Sie die News mit dem Titel "'+title+'" wirklich löschen?';
	} else if (type == 'content') { // else-if hinzugefügt
		text = 'Wollen Sie den Inhalt mit dem Namen "'+title+'" wirklich löschen?';
	}
	return confirm(text); // NEU
}
//..
<a href="send_news.php?delete=1" onclick="return deleteData('news','Neue HP');">
..
<!-- 'news' in Anführungszeichen, URL weggelassen -->
</a>
Abgesehen davon ist die Variable "text" nicht definiert, wenn du "news" übergibst.

Was du tun solltest wäre sicherlich soetwas:
Code:
function deleteConfirm(anchor, type, title) {
  // ..
  if (confirm(text)) {
    anchor.href += "&confirmed=1";
    return true;
  }
  return false;
}
// ..
<a href="send_news.php?delete=1" onclick="return deleteConfirm(this, 'title', 'Newstitel')">
// ..
// send_news.php:
$delete = !empty($_GET["delete"]);
$confirmed = !empty($_GET["confirmed"]);
So kannst du bei deaktiviertem JavaScript oder JavaScript-Fehlern vor der Linkausführung verhindern, dass der Eintrag gelöscht wird, z.B. durch einen (Google)Bot oder eben einen JavaScript-Fehler in deiner confirm-Funktion.
__________________
"Nuschel ich?" - "Was?"

Geändert von Chriz (04.06.2010 um 13:37 Uhr).
Chriz ist offline  
Alt 04.06.2010, 14:18  
Neuer Benutzer
 
Registriert seit: 15.12.2009
Beiträge: 24
PHP-Kenntnisse:
Anfänger
TacoMe befindet sich auf einem aufstrebenden Ast
Standard

bin nicht sicher ob ich das jetz alles richtig verstanden habe. Hab meine Funktion nach deinen Vorschlägen (die ich ein wenig verändert habe) abgeändert nur leider kommt da immernoch kein confirm.

Code:
function deleteData(type,title) {
	if (type == 'delete') {
		var text = 'Wollen Sie die News mit dem Titel "'+title+'" wirklich löschen?';
	}
	else if (type == 'content') {
		var text = 'Wollen Sie den Inhalt mit dem Namen "'+title+'" wirklich löschen?';
	}
	if (confirm(text)) {
		this.href += '?confirmed';  // was ist anchor? ich nehm erstmal this.href.. bei & findet er die url nicht also ? für $_GET
		return true;
	}
	return false;
}
TacoMe ist offline  
Alt 04.06.2010, 14:29  
Moderator¹
 
Registriert seit: 28.03.2010
Beiträge: 7.470
PHP-Kenntnisse:
Fortgeschritten
ChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer Anblick
Standard

Zitat:
Zitat von TacoMe Beitrag anzeigen
Hab meine Funktion nach deinen Vorschlägen (die ich ein wenig verändert habe) abgeändert nur leider kommt da immernoch kein confirm.
Gibt es denn jetzt an der Stelle, wo du die Funktion aufrufst, eine Variable namens news? Bzw. was hast du am Aufruf geändert?

Zitat:
FireBug kann mir nich sagen, was ich falsch mache.
Doch, kann es vermutlich schon - allerdings nicht, wenn sofort nach dem Auftreten eines Fehlers das Formular abgeschickt wird.

Deshalb wäre es clever, die Funktion zum Test erst mal an einer Stelle aufzurufen, die nicht den Wechsel auf eine neue Seite bewrikt.
__________________
RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?
ChrisB ist offline  
Alt 04.06.2010, 14:36  
Moderator
 
Benutzerbild von Chriz
 
Registriert seit: 11.05.2008
Beiträge: 6.266
Chriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer Anblick
Standard

Ich kann mich nur wiederholen:
Zitat:
Abgesehen davon ist die Variable "text" nicht definiert, wenn du "news" übergibst.


Zitat:
was ist anchor? ich nehm erstmal this.href.. bei & findet er die url nicht also ? für $_GET
Du siehst doch dass ich als 1. Parameter this übergebe, der dann den anchor-Parameter darstellt. Wenn im <a href> schon ein Parameter übergeben wurde (?delete=1) musst du eben &confirmed=1 dranhängen (?delete=1&confirmed=1), andernfalls wird ?delete=1?confirmed=1 daraus, was keine gültige URL-Parametrisierung darstellt. Natürlich vorausgesetzt du möchtest übergeben, ob das Löschen vorher bestätigt wurde. Falls ja, sollte deine send_news.php auf den fehlenden Parameter confirmed das Löschen *nicht* anstossen, falls nein, brauchst du mit anchor.href auf keine Manipulation der des href vornehmen.
__________________
"Nuschel ich?" - "Was?"

Geändert von Chriz (04.06.2010 um 14:39 Uhr).
Chriz ist offline  
Alt 04.06.2010, 15:18  
Neuer Benutzer
 
Registriert seit: 15.12.2009
Beiträge: 24
PHP-Kenntnisse:
Anfänger
TacoMe befindet sich auf einem aufstrebenden Ast
Standard

Code:
function deleteData(anchor,type,title) {
	if (type == 'news') {
		var text = 'Wollen Sie die News mit dem Titel "'+title+'" wirklich löschen?';
	}
	else if (type == 'content') {
		var text = 'Wollen Sie den Inhalt mit dem Namen "'+title+'" wirklich löschen?';
	}
	if (confirm(text)) {
		anchor.href += '&confirmed=1';
		return true;
	}
	return false;
}
ist sie mit "var" nicht definiert? O,o was muss ich stattdessen nehmen? hab mich an anderen scripts orientiert gehabt. bin nich so versiert in java.


@ChrisB: hab bei FireBug die option "Dauerhaft" eingeschaltet. Dachte damit würde er den Fehler dann, trotz weiterleitung zeigen.
PHP-Code:
<a href="send_news.php?delete=1" onclick="return deleteData(this,'news','Neue HP');" target="_self">
    <
img src="http://www.php.de/images/delete.png" border="0" height="16" width="16">
</
a
so sollte es doch eigentlich laufen oder nicht? tut es nämlich nicht.

Geändert von TacoMe (04.06.2010 um 15:35 Uhr).
TacoMe ist offline  
Alt 04.06.2010, 15:26  
Moderator¹
 
Registriert seit: 28.03.2010
Beiträge: 7.470
PHP-Kenntnisse:
Fortgeschritten
ChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer Anblick
Standard

Zitat:
Zitat von TacoMe Beitrag anzeigen
hab mich an anderen scripts orientiert gehabt. bin nich so versiert in java.
JAVA ist immer noch etwas komplett anderes als JavaScript.


Zitat:
PHP-Code:
<a href="send_news.php?delete=1" onclick="return deleteData(this,news,'Neue HP');" target="_self"
so sollte es doch eigentlich laufen oder nicht? tut es nämlich nicht.
Die Frage, wo die Variable news definiert sein soll, ist damit immer noch offen.
__________________
RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?
ChrisB ist offline  
Alt 04.06.2010, 15:33  
Neuer Benutzer
 
Registriert seit: 15.12.2009
Beiträge: 24
PHP-Kenntnisse:
Anfänger
TacoMe befindet sich auf einem aufstrebenden Ast
Standard

ooh da warn zwei logische fehler
in der abfrage von "type" (anstatt 'delete' musste es 'news' heißen
und bei "news" fehlten die anführungszeichen.
das hat wohl einiges an verwirrung gestiftet.

es läuft aber immernoch nicht. und das java nicht javascript ist, hilf mir irgendwie nicht weiter. ^^

EDIT: hab grad gegooglet und folgendes herausgefunden:

Zitat:
var
This indicates you are about to declare a variable.
also stimmts es doch. O,o

Geändert von TacoMe (04.06.2010 um 15:37 Uhr).
TacoMe ist offline  
Alt 04.06.2010, 15:41  
Moderator¹
 
Registriert seit: 28.03.2010
Beiträge: 7.470
PHP-Kenntnisse:
Fortgeschritten
ChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer Anblick
Standard

Zitat:
Zitat von TacoMe Beitrag anzeigen
es läuft aber immernoch nicht.
Meinen Vorschlag, wie man in Firebug vielleicht eine Fehlermeldung zu sehen bekommen könnte, hast du ja mit dem letzten gezeigten Code auch noch nicht umgesetzt.

(Dass man mit Firebug auch „richtig“ debuggen kann, sei mal nur am Rande erwähnt.)
__________________
RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?
ChrisB ist offline  
Alt 04.06.2010, 15:50  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.987
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

Zitat:
es läuft aber immernoch nicht. und das java nicht javascript ist, hilf mir irgendwie nicht weiter. ^^
Sorry, aber es macht einen Unterschied, ob man nach Java oder Javascript googlet.
Zitat:
EDIT: hab grad gegooglet und folgendes herausgefunden:
Wahnsinn, DU hast eine Javascript Grundlage geooglet. Ich weiß nicht, wo das hier hinführen soll. Offensichtlich beschränkt sich Dein Programmieren auf Copy und Paste. Ich finde nicht, dass das hier unser Anspruch sein sollte.

In Erwartung Deiner schlechtgelaunten PN,

[MOD: Thread geschlossen]
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--
nikosch ist offline  
Thema geschlossen


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
onClick + overlays aber ohne submit Chili-Schaf JavaScript, Ajax und mehr 2 04.12.2009 12:12
[Erledigt] OnClick event abbrechen Frank JavaScript, Ajax und mehr 4 25.08.2009 12:15
[Erledigt] onclick, onmoseover,onmouseout in 1 href FreddyS HTML, Usability und Barrierefreiheit 11 31.07.2009 20:29
onclick vor seitenaufruf ausführen KokosDesign JavaScript, Ajax und mehr 4 27.05.2009 01:25
[JS] onClick funktioniert erst beim 2. Mal Klicken. DER_Brain HTML, Usability und Barrierefreiheit 2 08.07.2008 10:47
jQuery: Parameter an onclick Event ecomeback HTML, Usability und Barrierefreiheit 1 08.04.2008 11:23
ora_exec() liefert nichts zurück Faebe PHP Tipps 2007 3 15.03.2007 09:11
onclick eines buttons ändern necrom0rb HTML, Usability und Barrierefreiheit 6 27.04.2006 21:42
Dynamisches onclick pc-freak HTML, Usability und Barrierefreiheit 3 18.04.2006 11:47
JS: Frage zu onClick in Verbindung mit einer Funktion HTML, Usability und Barrierefreiheit 1 04.11.2005 16:06
Variable mit onClick übergeben? PHP Tipps 2005-2 2 22.09.2005 15:33
db abfrage tut nichts other_ PHP Tipps 2004-2 11 04.12.2004 02:06
php script zeigt im browser nichts an?? PHP Tipps 2004-2 5 09.11.2004 20:09
Es wird nichts erzeugt! PHP Tipps 2004-2 26 08.11.2004 15:10
nichts senden wenn nichts eingetragen ist PHP Tipps 2004 2 14.08.2004 16:31

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
window.confirm, return window.confirm, php window.confirm, window.confirm mit php, window.confirm php, confirm onclick, window confirm, confirm php, onclick confirm, window.confirm(); php, a href mit onclick confirm php, onclick window.confirm, onclick confirm window, window.confirm title, javascript confirm on enter overlay, http://www.php.de/javascript-ajax-und-mehr/68621-onclick-window-confirm-nichts-passiert.html, onclick löschen ja nein, php löschen onclick, onclick=\'confirm php, onclick this.confirmed

Alle Zeitangaben in WEZ +2. Es ist jetzt 08:44 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum