closed
Goto Top

formular mittels js abschicken und darauf reagieren

hi,

hab ein kleines formular geschrieben, welches mir die datensätze aus einer datenbank anzeigt. mittels js kann ich auch die einzelnen datensätze anklicken und es erfolgt automatisch ein submit.

jetzt habe ich an jeden datensatz ein kleines image drangehangen, mit dem ich den angeklickten datensatz löschen möchte. mein problem ist, dass ich nicht genau weiß, wie ich auf den klick auf das image reagieren soll.

hier mal der sourcecode:
<script type="text/javascript">  
	function dbChange(element){
 		var id = element.getAttributeNode('id');  
		document.getElementById("id").value = id.value;   
		document.user.submit();
	}
</script>

... (zeilen wurden entfernt)

	for($i=0; $i<$anzahl; $i++) {
		$datensatz	=	mysql_fetch_array($result);
		if($i%2==0){
			echo '<tr class="tbl" id="'.$datensatz['id'].'" bgcolor="#CCCCCC" onMouseOver=this.bgColor="#dde9fe" onMouseOut=this.bgColor="#CCCCCC" onclick="dbChange(this);">';  
			echo '<td align="center">' . $datensatz['username'] . '</td>';  
			if($datensatz['isAdmin'] == 1){  
				echo '<td align="center">ja</td>';  
			}else{
				echo '<td align="center">nein</td>';  
			}
			echo '<td align="center"><img src="images/delete_grey.jpg" alt="delete" /></td>';  
		}else{
			echo '<tr class="tbl" id="'.$row->id.'" onMouseOver=this.bgColor="#dde9fe" onMouseOut=this.bgColor="white" onclick="dbChange(this);">';  
			echo '<td align="center">' . $datensatz['username'] . '</td>';  
			if($datensatz['isAdmin'] == 1){  
				echo '<td align="center">ja</td>';  
			}else{
				echo '<td align="center">nein</td>';  
			}
			echo '<td align="center"><img src="images/delete_white.jpg" alt="delete" /></td>';  
		}
		echo '</tr>';  
	}
?>
		<tr><td bgcolor="white"><input type="hidden" name="id" id="id" value=""/></td></tr>  
	</table>
</form>

Content-Key: 90160

Url: https://administrator.de/contentid/90160

Printed on: April 20, 2024 at 02:04 o'clock

Member: Arano
Arano Jun 19, 2008 at 19:03:53 (UTC)
Goto Top
Was spricht denn gegen
<a href="./delete.php?id=XXX" title=""><img src="" alt=""></a>  
?

(Vielleicht sollte man sich erstmal um die grundlegenden Funktionen kümmern und dann anfangen das ganze mit JS auszuschmücken !?)

~ Arano
Member: Closed
Closed Jun 19, 2008 at 21:08:30 (UTC)
Goto Top
es sind alle grundlegenden funktionen vorhanden. wie du siehst, sind ein paar punkte im skript mit dem hinweis, dass zeilen entfernt wurden,a ber darum geht es ja auch nicht.

ok soweit müsste das ja gehen, wenn ich dann die id an die url dranhänge und mittels get auslese. thx dafür.

ein weiteres problem (eher in richtung usability): ich habe das image derzeit in derselben zeile drin, die auch angeklickt werden kann. ist es irgendwie möglich das image von der erzeugten tabelle zu lösen und trotzdem einen bezug zum datensatz herzustellen? ´

der derzeitige ansatz ist etwas benutzerunfreundlich, da man direkt auf das image klicken muss, klickt man etwas über das image, dann wird schon eine andere aktion ausgeführt.

wäre um einen lösungsansatz sehr dankbar

danke schonmal
Member: Arano
Arano Jun 20, 2008 at 22:49:29 (UTC)
Goto Top
es sind alle grundlegenden funktionen vorhanden. wie du siehst, sind ein paar punkte im skript mit dem hinweis, dass zeilen entfernt wurden,a ber darum geht es ja auch nicht.
Oh, tut mir Leid, das war etwas voreilig von mir !
Dachte nur weil das per Javascript markieren schon da ist, aber die Löschfunktion noch fehle... bitte entschuldige !

ein weiteres problem (eher in richtung usability): ich habe das image derzeit in derselben zeile drin, die auch angeklickt werden kann. ist es irgendwie möglich das image von der erzeugten tabelle zu lösen und trotzdem einen bezug zum datensatz herzustellen?
Meine spontanen Ideen waren:
- Das Image etwas verkleinern damit zwischen ihnen ein größerer Abstand entsteht.
(auch nicht unbedingt Benutzerfreundlich)
- Das Image per CSS in jeder zweiten Zeile etwas zur Seite verschieben.
(sieht nicht so schön aus und wirkt unorganisiert)
- Nach dem Klick auf das Image/Link noch Abfragen ob der Datensatz (hier glaube ich der Benutzer) wirklich gelöscht werden soll.
(Soll der Benutzer "Arano" wirklich gelöscht werden ?
Das als <form method="POST"> hat natürlich auch gleich wieder seine vorteile...
z.B: es gibt Plugins die alle verlinkten Seiten schon mal vorladen... was hier z.B.: alle Benutzer automatisch löschen würde
(habe ich auch erst vor kurzem erfahren, böse Sache das face-wink ))
Wenn dir davon nichts mehr zusagt als deine bisherige Lösung muss ich passen.

Schönes Wochenende noch
~Tobias
Member: Closed
Closed Jun 20, 2008 at 23:09:06 (UTC)
Goto Top
hmm... danke erstmal für die antwort. ich dachte eher an so eine implementierung, wie es in phpmyadmin zu sehen ist. da funktioniert es ja auch recht gut.

wüßtest du eventuell, wie man so etwas realisieren könnte?
Member: Arano
Arano Jun 22, 2008 at 00:55:22 (UTC)
Goto Top
Was meinst du den da genau ?
Naja, die Buttons zum direkten Löschen sind ja auch in der Zeile drin. Bleibt wohl nur noch das anklicken der gesamten Zeile worauf die Checkbox am Anfang gecheckt wird und unter mit dem zentralen Button gelöscht werden können.

Das Anklicken "checkt" die Checkbos per JS, dessen Name in jeder Zeile gleich lautet und mit zwei eckigen klammern endet (z.B. to_delete) sowie die ID des zu löschenden Datensatzes als Value.
(Daraus entsteht dann in PHP ein normales Array.)

Ansonsten musst du vielleicht mal tiefer in den PMA-Quelltext gucken !?

Schönen Sonntag
Tobias
Member: Closed
Closed Jun 22, 2008 at 07:30:07 (UTC)
Goto Top
hmmm recht schwer das zu beschreiben. wie gesagt': das problem liegt darin, dass ein benutzer nur ein wenig neben das bild klicken könnte und somit nicht den delete befehl ausführt, sondern den datensatz auswählt. bei phpmyadmin bspw. werden die spalten mit einem weißen rahmen versehen. ich denke sowas würde schon fast ausreichen. bei mir werden die zeilen komplett eingefärbt und am ende die images integriert

hoffe du verstehst wie ich das meine face-smile