Javascript nutzen um PHP Script zu starten

Hi Forum :wink:

Ich hab da mal ne Frage :wink:

Ich habe eine PHP Datei ticket.php die ein Support-Ticketsystem “erstellt” und welches für verschiedene User funktioniert per ticket.php?id=xxxx . Sprich, man kann sich eines erstellen für seine eigene Seite.

Dies muss natürlich noch bei den Leuten auf der Seite eingebunden werden. Ich habe mir überlegt, dass Javascript die beste Lösung wäre, da ich mich an Leute orientiere die kein PHP beherschen oder gar kein PHP fähigen Webspace haben. Eine Lösung über iframe ist mir zu unpraktisch…

Wenn ich nun das Javascript

<script src="test.php" type="text/javascript"></script>
auf index.html einfüge passiert nichts, die test.php sieht wie folgt aus (vereinfachte Form)

[code]
document.write("

<?php session_start(); require("functions/config.inc.php"); require("functions/conn.inc.php"); if(!session_is_registered('user') || $_SESSION['user'] == "") { header("location:login.php"); die; } //Tickets abfragen $ticketget=mysql_query("select * from support where id = '".mysql_real_escape_string($id)."' and typ = '0' order by datum"); //tabelle anlegen $inhalt .= ''; //array starten while ($tickets = mysql_fetch_array($ticketget)) { //99 $ticketid = mysql_real_escape_string($tickets["tid"]); $betreff = mysql_real_escape_string($tickets["betreff"]); $kategorie = mysql_real_escape_string($tickets["kategorie"]); $status = mysql_real_escape_string($tickets["status"]); if($status == '0'){ $status = "Offen"; }else if($status == '1'){ $status = "Neue Antwort"; }else if($status == '2'){ $status = "Geschloßen"; } $datum = mysql_real_escape_string($tickets["datum"]); $inhalt .= '
Deine Tickets
ID Betreff Kategorie Datum Status
'.$ticketid.' '.$betreff.' '.$kategorie.' '.$datum.' '.$status.' '; $inhalt .= " <input type='hidden' name='ticketid' value='"; $inhalt .= ''.$ticketid.''; $inhalt .="' class='button'> <input type='submit' name='sticket_view' value='Anzeigen' class='button'> </form></td>"; } $inhalt .= '
'; $inhalt .= " "; echo ($inhalt); ?>");[/code]

Warum zeigt meine index.html nichts an? Denk ich da zu einfach ? ;D

Besonders sinnvoll ist das alles nicht.

Damit das überhaupt halbwegs einen Sinn ergibt, müßtest du da wohl als Inhaltstyp den für
java-script senden, so bekommst du einen für HTML.
document.write ergibt natürlich formal auch keinen Sinn in einer java-script-Datei, da kannst
du den java-script-Quelltext ja gleich direkt hinschreiben und was anderes sollte da auch gar
nicht drinstehen - keine Ahnung auch, ob überhaupt noch als Skript interpretiert wird, was
so ausgegeben wird - und es sieht ja nichtmal nach java-script aus, was da per
document.write erzeugt wird. Dies hier versucht aber sogar header zu verwenden, nachdem
schon eine Textausgabe erfolgt ist, was dazu führen sollte, daß es eine Fehlermeldung von PHP
als Ausgabe gibt, die wiederum in einem java-script nichts zu suchen hat.
Dann steht da ja irgendein (veraltetes, nicht besonders sinnvolles) HTML-Fragment drin, gehört
sicher auch nicht in eine java-script-Datei. Da müßtest du das Skript schon so gestalten,
daß das Skript über das DOM im referenzierenden Dokument die gewünschten Elemente
erzeugt.
Allerdings ist es dann natürlich viel einfacher, den Kram einfach per include an der gewünschten
Stelle in die HTML-Datei einzubinden, nachdem der veraltete Kram entsorgt wurde, und das
ganze java-script zu vergessen, daß ja ohnehin bestenfalls funktionieren wird, wenn
Skriptinterpretation aktiviert ist - wenn der Kram also inhaltlich irgendwie relevant ist, wird damit
eine Barriere erzeugt und der Inhalt unzugänglich, was zu vermeiden ist.

Ein iframe wäre wohl geeigneter, ohne das document.write selbstredend, da du ja auch ein formular in deinem phpscript hast.

iframe gibt es ja nicht in allen Versionen von (X)HTML.
Stattdessen kann man einfach object verwenden, welches es in allen Versionen gibt.
In beiden Fällen muß aber ein komplettes Dokument referenziert werden, also nicht nur ein
Fragment, wie es hier versucht wird zu erzeugen.
Ein komplettes Dokument wiederum kann man auch einfach mit dem Element a referenzieren,
das braucht man gar nicht einbetten.