Hallo,
echo "<a href=\"javascript:show('del_window', '".$events_result['id']."');\">löschen</a>";
So sieht der Link "löschen" aus
warum ist das ein Link? Ein Link dient normalerweise zum Aufruf einer neuen Ressource. Wenn du nur eine Javascript-Funktion aufrufen willst, wäre ein onclick-Handler auf einem anderen passenden Element sicher sinnvoller.
function show(fun_type, id) {
document.getElementById(fun_type).style.display='block';
var element = id;
}
> So wird der div mit den drei Buttons geöffnet und die Variable element definert, damit ich nachher die Nummer des Termins mitsenden kann.
Die variable element ist aber innerhalb der Funktion lokal und wird beim Beenden der Funktion sofort wieder entsorgt - sie ist also in der Form, wie du sie hier anlegst, völlig nutzlos.
> Im div gibt es jetzt zum Beispiel diesen Button:
> `<input value="Diesen Termin löschen" type="button" ONCLICK="window.location.href='javascript:hide(\u0022del_window\u0022,\u0022del_this\u0022)'" />`{:.language-html}
Autsch! Das Pseudoprotokoll javascript: ermöglicht zwar die Angabe von Javascript im href-Attribut eines Links, kann aber nicht direkt der href-Eigenschaft zugewiesen werden. Ist auch sinnlos, denn den Javascript-Code kann man doch auch direkt ausführen, anstatt ihn erst über zwei Umwege über location.href und das javascript:-Pseudoprotokoll zu schleifen. Das ist von hinten durch die Brust ins Knie!
Der folgende, vereinfachte Code erreicht dasselbe, was du mit der Doppelverschachtelung wohl erreichen willst:
> `<input value="Diesen Termin löschen" type="button" onclick="hide('del_window','del_this');" />`{:.language-html}
> \u0022 verwende ich anstatt Anführungszeichen, da ich hier drei benötige.
Nein, völlig unnötig.
> ~~~javascript
function hide(fun_type, fun_what) {
> document.getElementById(fun_type).style.display='none';
>
> if ( fun_waht == del_this ) {
> self.location.href="data_process.php?fun=del_event&id="+element;
> } else if ( fun_what == del_all ) {
> self.location.href="data_process.php?fun=del_all_events&id="+element;
> }
> }
Dass du einmal fun_what und einmal fun_waht notiert hast, sollte dir die Fehlerkonsole schon verraten haben.
Bei dieser Funktion wird der div wieder geschlossen und es soll z.B auf die Seite data_process.php?fun=del_event&id=34 weitergeleitet werden. 34 habe ich zuvor in die Variable element gespeichert.
Gespeichert und sofort wieder vergessen. Siehe oben.
So long,
Martin
"So schnell waren wir noch nie am Unfallort", sagte der Polizist zu seinem Kollegen, als er einen Laternenmast gerammt hatte.