Archivlink: javarea.de Forum > JavaScript > Confirm-Script lässt bei mir Seite neuladen was es nicht soll
Vollständigen Link anzeigen: javarea.de Forum > JavaScript > Confirm-Script lässt bei mir Seite neuladen was es nicht soll

Pages: [1]

geschrieben von Drehstabenverbucher am 03.01.2006 - 22:28
Hallo
ich möchte das Script Confirm Abfrage verwenden nur funktioniert es leider nicht so ganz.
Ich benutze folgendes Formular:
HTML-Quelltext
1: 
2: 
3: 
4: 
5: 
6: 
7: 
8: 
9: 
10: 
11: 
12: 
13: 
14: 
15: 
16: 
17: 
18: 
19: 
20: 
21: 
22: 
23: 
24: 
25: 
26: 
27: 
<!-- HTML-KrimsKrams -->
<script language="JavaScript" type="text/javascript">
<!--
function check()	{
	var fail = 0;
	if (document.formular.usergroup_name.value == "")	{
		alert("Name der Benutzergruppe fehlt");
		fail = 1;
	}
	if (fail == 1)	{
		return false;
	}else{
		return true;
	}
}

function conf() {
	if (confirm("Wirklich löschen??")){
		location.href="?module=community&action=admin&do=edit_usergroup&usergroup_id=2"
	} else {
	}
}
-->
</script>
<form name="formular" method="post" onSubmit="return check();" action="?module=community&action=admin&do=edit_usergroup&usergroup_id=2">
<!-- HTML Kram der durch das Script verändert wird -->
<input name="submit" type="submit" class="submit" value="Bearbeiten" />&nbsp;<input name="delete" type="submit" class="submit" value="L&ouml;schen" onclick="conf()" />


Mein Problem ist nun, dass sich nach dem klicken auf den Button "delete" die Seite neulädt uns somit die Daten die hier
<!-- HTML Kram der durch das Script verändert wird -->
stehen, wieder auf die ursprüngliche Form(also der ursprüngliche Inhalt) zurückgesetzt werden.

Vielleicht sind die folgenden Infos noch wichtig:
Ich bin auf folgender URL: ?module=community&action=admin&do=edit_usergroup&usergroup_id=2
Davor bin ich mit einem <select>-tag das mit einem JavaScript versehen ist, auf die oben genannte URL gelangt.

Ich möchte nun wissen ob ich das Script so ändern kann dass sich die Seite nich neulädt.

mfg

geschrieben von okley am 04.01.2006 - 10:32
??
Wie stellst du dir vor, etwas von der Datenbank zu löschen und das dann anzuzeigen ohne die Seite neu zu laden? Mal abgesehen davon, dass wir es mal möglichst einfach lösen wollen.

location.href lädt die Seite neu.

geschrieben von Drehstabenverbucher am 04.01.2006 - 21:51
ich hab ganz vergessen das ich davon ausgehe das ich auf den "Abbrechen"-Button drücke :S tschuldigung
Wenn ich auf Bestätigen drücke soll er natürlich eine andere Seite laden, aber er lädt zur Zeit die gleiche Seite neu, wenn ich auf abbrechen drücke

geschrieben von Martin am 04.01.2006 - 22:05
Ave,

die Javascript Funktion confirm gibt entweder true(OK) oder false(Abbrechen) zurück. Um jetzt daraus eine Verzweigung abzuleiten musst du deine conf() nur ein wenig modifizieren.

HTML-Quelltext
1: 
2: 
3: 
4: 
5: 
6: 
7: 
function conf() {
	if(confirm("Wirklich löschen??") == true){
location.href="?module=community&action=admin&do=edit_usergroup&usergroup_id=2"
	} else {
location.href="?module=else";
	}
}


mfg martin

geschrieben von Drehstabenverbucher am 04.01.2006 - 23:00
das heisst doch aber das der besucher auf die seite "?module=else" verlinkt wird oder?

Es soll aber eigentlich nichts passieren. Das ist normalerweise bei dem Script so, nur da wo ich das anwende leider nicht.

geschrieben von Martin am 04.01.2006 - 23:13
Ave,

wenn ich das jetzt richtig verstehe. Du möchtest Daten aus einer DB löschen und diese trotzdem hinterher wieder anzeigen... ? Hääähh

Nun gut. Wenn du Datensätze löscht werden diese beim DELETE - Query ein letztes Mal zurückgegeben. Vielleicht hilft dir das.

Was das confirm() angeht, gibt es keinen Umweg um das Formular zu senden und gleichseitig die Seite zu erhalten.


mfg martin

geschrieben von Drehstabenverbucher am 06.01.2006 - 20:09
Ich glaub ich sollte an meiner Ausdrucksweise arbeiten

Ich versuchs nochmal anders zu erklären.
1. Ich hole Daten aus meiner Datenbank die ich in einem Formular mit <input>-Feldern anzeige. Am Ende des Formulars befinden sich 2 Buttons ("speichern" und "löschen")
2. Auf den Button "löschen" möchte ich das confirm()-Script anwenden. Also wenn der Button "löschen" gedrückt wurde, soll das Script geladen werden. Wie es im Script vorgesehen ist, soll beim drücken von "OK" eine andere Seite geladen werden (das ist aber zur Zeit nebensächlich). Und wenn auf "Abbrechen" gedrückt wird, soll die gleiche Seite angezeigt werden ohne das sich was ändert.
ABER
Wenn ich auf "Abbrechen" drücke, lädt sich die Seite neu.
Und da ich die geänderten <input>-Daten in dem Formular noch nicht in der Datenbank aktualisiert habe (was auch beim drücken von "löschen" nicht gemacht werden soll), werden diese wieder angezeigt und meine vorher in den input-Feldern veränderten Daten sind wieder auf ihre Ursprungsform zurückgesetzt(wie sie unverändert in der Datenbank stehen).

Nun ist meine Frage warum sich das Script gerade bei mir neulädt, da es ansonsten normal funktioniert.

Meine Anwendung:
Ich wähle in einem <select>-Tag eine Option aus und mit Hilfe eines JavaScripts wird der Besucher auf eine URL-weitergeleitet. Auf dieser Seite bekommt er das Formular angezeigt mit den beiden Buttons "Speichern" und "Löschen" am Ende.

HTML:
HTML-Quelltext
1: 
2: 
3: 
4: 
5: 
6: 
7: 
8: 
9: 
10: 
11: 
12: 
13: 
14: 
15: 
16: 
17: 
18: 
19: 
20: 
21: 
22: 
23: 
24: 
25: 
26: 
27: 
28: 
29: 
30: 
31: 
32: 
33: 
34: 
35: 
36: 
37: 
38: 
39: 
40: 
41: 
42: 
43: 
44: 
45: 
46: 
47: 
48: 
49: 
50: 
51: 
52: 
53: 
54: 
55: 
56: 
57: 
58: 
59: 
60: 
61: 
62: 
63: 
64: 
65: 
66: 
67: 
68: 
69: 
70: 
71: 
72: 
73: 
74: 
75: 
76: 
77: 
78: 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="de" lang="de">
<head>
<title>Titel</title>
</head>
<body>
<script language="JavaScript" type="text/javascript">
<!--
function check()	{
	var fail = 0;
	if (document.formular.usergroup_name.value == "")	{
		alert("Name der Benutzergruppe fehlt");
		fail = 1;
	}
	if (fail == 1)	{
		return false;
	}else{
		return true;
	}
}

function conf() {
	if (confirm("Wirklich löschen??")){
		location.href="?module=community&amp;action=admin&amp;do=edit_usergroup&amp;usergroup_id=2"
	} else {
	}
}
-->
</script>
<br />
<form name="formular" method="post" onSubmit="return check();" action="?module=community&amp;action=admin&amp;do=edit_usergroup&amp;usergroup_id=2">
<table border="1" style="width: 95%;border-collapse: collapse;border-color:#000000;" align="center">
<tr>
  <td class="tdbg" colspan="2"><font color="#FFFFFF"><b>Community - <i>Usergruppe bearbeiten/l&ouml;schen</i></b></font></td>

</tr>
<tr>
  <td width="25%"><b>Name der Benutzergruppe</b></td>
  <td align="left"><input name="usergroup_name" type="input" value="Member" /></td>
</tr>
<tr>
  <td width="25%"><b>Rechte der Benutzergruppe</b></td>
  <td><br />
    <table border="1" style="width: 95%;border-collapse: collapse;border-color:#000000;" align="center">
    <tr>

      <td><input id="right1" name="right1" type="checkbox" value="1" checked="checked"  /><label for="right1">News</label></td>
      <td><input id="right2" name="right2" type="checkbox" value="1"   /><label for="right2">Community</label></td>
      <td><input id="right3" name="right3" type="checkbox" value="1"   /><label for="right3">Guestbook</label></td>
      <td><input id="right4" name="right4" type="checkbox" value="1"   /><label for="right4">Settings</label></td>
    </tr>
    <tr>
      <td><input id="right5" name="right5" type="checkbox" value="1" checked="checked"  /><label for="right5">Article</label></td>

	  <td><input id="right6" name="right6" type="checkbox" value="1"   /><label for="right6">Poll</label></td>
	  <td><input id="right7" name="right7" type="checkbox" value="1"   /><label for="right7">Join Us</label></td>
	  <td><input id="right8" name="right8" type="checkbox" value="1"   /><label for="right8">Fight Us</label></td>
	</tr>
	<tr>
	  <td><input id="right9" name="right9" type="checkbox" value="1"   /><label for="right9">Contact</label></td>
	  <td><input id="right10" name="right10" type="checkbox" value="1"   /><label for="right10">Squads</label></td>

	  <td><input id="right11" name="right11" type="checkbox" value="1"   /><label for="right11">Server</label></td>
	  <td><input id="right12" name="right12" type="checkbox" value="1"   /><label for="right12">Matches</label></td>
	</tr>
	</table><br />
  </td>
</tr>
<tr>
  <td colspan="2" align="center"><input name="submit" type="submit" class="submit" value="Speichern" />&nbsp;<input name="delete" type="submit" class="submit" value="L&ouml;schen" onclick="conf()" /></td>
</tr>

</table>
<br />
<input name="count" value="20" type="hidden" />
</form>
</body>
</html>


Ich hoffe diesmal ist es besser zu verstehen


Powered by: JBB v.2.0.4 Copyright ©2000-2006, www.javarea.de.