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:
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>
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 90160
Url: https://administrator.de/contentid/90160
Ausgedruckt am: 26.11.2024 um 01:11 Uhr
6 Kommentare
Neuester Kommentar
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 ))
Wenn dir davon nichts mehr zusagt als deine bisherige Lösung muss ich passen.
Schönes Wochenende noch
~Tobias
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
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