JS + php + onclick

Subwoover

Erfahrenes Mitglied
Jo ich suche eine möglichkeit folgendes problem zu lösen:

checkbox mit onclick="setvalue" und wenn ma das hakerl rein macht wird via JS eine funktion aufgerufen, in der möchte ich jez mittels php einen DB query ausführen, wie mach ich das am besten, geht das überhaupt?

grüsse
 
Ja, aber du musst auf jedenfall die Seite neuladen. Und beim Neuladen musst du dann eben die Parameter mitübergeben, so wie bei normalen Links die serverseitige Seiten aufrufen auch. Ich nehme an, dass dein JavaScript diesen aufruf dann dynamisch generieren muss.

tob
 
Eine andere Methode wäre, entweder ein Frameset zu definieren, welches aus 2 Frames besteh, einen der den Ganzen Bildschrim bedeckt und einen der unsichtbar ist:
PHP:
<frameset rows="100%, 0%">
  <frame src="index.php" name="MainFrame">
  <frame src="about:blank" name="OptionFrame">
</frameset>
oder einen unsichtabren IFrame einzufügen:
PHP:
<iframe name="OptionFrame" width="0" height="0" frameborder="0"></iframe>
Und statt die Seite neu zu laden, das Script in den unsichtabren Frame zu laden, sodass es für den Besucher nicht sichtbar ist.
 
hmm gibts nicht eine möglichkeit dass ich das Script aufrufe und dann unterbreche den php code reinheiz und dann das script beende?

circa so:
Code:
<script...
function SetValue() {
<?
php code
?>
}
</script>

Ich kann mir denken dass das SO nicht hinhaut aber so irgendeine möglichkeit gibts nicht?
 
Nein! Weil PHP serverseitig ist, und immer zuerst ausgeführt/geparst wird!
 
Ok ich JS noob hab mir grad was überlegt was sowieso schon standard ist denke ich...

also auf onclick lasse ich ein popup starten welches den sql befehl ausführt NUR wie schliße ich das fenster dann wieder?
Jo mit function window.close() aber wie rufe ich das nach ausführung der sql auf?
bzw am ende des scripts...?
 
Ich glaub du solltest dir mal klar machen, was serverseitig und clientseitig heißt bzw. wie PHP in Zusammenhang mit einem Webserver arbeitet ;)

Code:
             Anfrage -->
Client <=================> Server
  |       <-- Ergebnis         ^
Browser                      | |
  |                          v
Darstellung &                PHP <=> Datenbank
Ausführung
(z.B. JS)
Soll heißen: Client schickt Anfrage an den Server, der leitet die gegebenenfalls an PHP weiter (Pfeil nach unten). PHP erstellt jetzt u.U. in Zusammenarbeit mit einer Datenbank den Quellcode der Seite, die der Server dann wiederum an den Client zurückschickt (Ergebnis). Auf dem Client läuft (meist) ein Browser, der diesen Quelltext erst mal entgegennimmt. Dann (und wirklich erst dann) wird der Code interpretiert, dargestellt, JS ausgeführt, etc. Es liegt also ein langer Weg zwischen SQL-Query und Fenster schließen, das ganze kann sich überhaupt nicht in die Quere kommen, da der Quellcode ja (zumindest in der Regel) erst nach der Abarbeitung des Scripts an den Client resp. den Browser geschickt wird. Das nur mal so zum allgemeinen Verständnis ;)
 
vielen dank für diese äußerst einleuchtende erklärung und das diagramm sorgt auch für verständniss! echt danke dir :)

Aber wie führe ich nun das JS mit echo oda so OHNE onclick oda onload aus?
Einfach nur am ende der file das JS ausführen hmm :(

neue frage: wie mach ich das wie hier im board mit dem zB fett schreiben? neues fenster mit eingabezeile geht auf und beim absenden wirds in die textarea geschrieben, hab das bereits mit smilies und select feldern...

me = js noob :p
 
Also, da das PHP-Script sowieso schon ausgeführt worden ist, wenn der HTML-Code an den Browser geschickt worden ist, kannst du es einfach so machen:
PHP:
<?php
//Dein Code für die Datenbank
?>
<script type="text/javascript">
self.close();
</script>

//Edit:
Fett schreibst du mit BBCode ([]) b (=bold), Kursiv mit i (=italic), Unterstrichen mit u (=Underline) usw. Schau einfach mal in die Buttonleiste über dem Textfeld, wenn du einen neuen Beitrag schreibst und klick ein bisschen rum.
 
Zuletzt bearbeitet von einem Moderator:
Psst @Nuinmundo, ich glaub er meinte eher wie das JS-mäßig funktioniert ;)

@Subwoover: Schau doch einfach nach, wie das hier auf dem Board funktioniert :) Lass dir den Quellcode einer Seite mit VBCode-Elementen anzeigen und such nach den entsprechenden Stellen (im Browser Firebird kann man sich z.B. nur den Quelltext des aktuell ausgewählten Textbereiches anzeigen lassen, was sowas sehr vereinfacht :)) Da wirst du sehen, dass bei den Buttons bestimmte Funktionen beim onClick-Ereignis aufgerufen werden. Weiterhin kann man dem Quelltext entnehmen, dass diese in der http://www.tutorials.de/vbcode.js stehen :) Kannst dich ja mal durchwühlen (evtl. mit SelfHTML in Reichweite ;)) und dann gezielte Fragen stellen, wenn du was nicht verstehst :)
 
Zurück