2012-04-06 7 views
1

Meine Webseite ermöglicht Benutzern, Elemente aus einer Dropdown-Liste auszuwählen und hat eine Tabelle. Javascript druckt jedes Dropdown-Listenelement (plus zusätzliche Informationen, die Javascript aus der XML-Datei abruft) in eine neue Tabellenzeile, die von JavaScript erstellt wird.Wie bezieht sich PHP auf das aktuelle Dokument?

Ich möchte in der Lage sein, die Tabelleninformationen auf die Festplatte zu schreiben. Wenn ich Javascript verwenden würde, würde ich document.getElementByID ("Tabelle") verwenden, um die Knoten zu analysieren und diese Informationen in Variablen zu schreiben, die ich schreiben könnte. Die meisten Dokumente, die ich finde, sagen jedoch, dass Javascript nicht zum Schreiben auf die Festplatte verwendet wird. Also, ich denke, ich sollte PHP verwenden.

Was ist das PHP-Äquivalent von Javascript 'Dokument' Objekt? In Javascript muss ich keine neuen Objekte definieren, um es zu verwenden, ich kann 'Dokument' jederzeit verwenden. Ich denke in PHP muss ich neue DOMDocument verwenden. und dann lade den html.

Die meisten PHP-Beispiele zeigen loadHTML (string) und loadHTMLFile(); Ich möchte HTML nicht aus einer Zeichenfolge laden, die ich in die Tags schreibe. Und ich möchte nicht HTML aus der HTM-Datei laden, weil das die ursprüngliche Datei ist und Javascript die Datei des Benutzers basierend auf ihrer Auswahl aus dem Dropdown-Menü geändert hat.

Ich möchte mit php auf die Elemente des aktuellen Dokuments zugreifen. Also, wie bezieht sich PHP auf das aktuelle Dokument?

Die Seite arbeite ich an ist http://music.collwyncraig.info/hajimama/setlist.htm

+4

PHP läuft * nicht * im Browser. Es läuft oft in Webservern oder als eigenständige Programme. Wenn ein PHP-Programm die Webseite erhalten kann, kann sie es analysieren und auf die Festplatte schreiben, aber das würde nichts mit der Ausführung innerhalb eines Browsers zu tun haben. – wallyk

+0

Ich glaube, ich beginne das zu verstehen. Was kann ich also verwenden, um die Informationen von der Seite (dem HTML-DOM), die im Browser ausgeführt wird, zu erhalten und sie an den Server zurückzusenden, damit ich sie in einer Datei auf dem Server speichern kann? – collwyn

Antwort

1

Ich denke, Ihre Gedanken über die Architektur falsch sind. Es gibt einen Weg, wie die Programmiersprachen miteinander interagieren.

  • php ist ein Präprozessor und erzeugt - was auch immer u wollen - in der Regel HTML, mit Javascript, CSS, und was auch immer ...
  • Javascript eine dynamische Sprache ist, die von Ajax in den generierten HTML-Dokumente oder Anrufe in Wechselwirkung tritt andere Dienste, die hTML, JavaScript, CSS liefern oder was auch immer nötig ist
  • und html - das ist Dokument-Objekt, das angezeigt wird, und kann während der Laufzeit von Javascript einer im Stil von CSS, etc ...

modifiziert werden Also, wenn Sie Ihre Dokumente JavaScript-Funktionen aufrufen - Das grundlegende php hat bereits seine Arbeit getan.

Anstatt alle generierten Inhalte von php direkt auf den Bildschirm zu drucken, können Sie sie zuerst in einer var speichern.

Zum Beispiel:

$myContent = "<html><head>...</head><body><h1>Whatever...</h1></body>"; 

so mit, dass man wie folgt vorgehen es auf dem Bildschirm zu drucken:

print "myContent"; // and it is shown on the screen 

oder

$myFile = "testFile.html"; 
$fh = fopen($myFile, 'w') or die("can't open file"); 
$myContent = "<html><head>...</head><body><h1>Whatever...</h1></body>"; 
fwrite($fh, $myContent); 
$myContent = "Whatever2"; 
fwrite($fh, $myContent); 
fclose($fh); 

So wird der Inhalt der Datei wäre:

<html><head>...</head><body><h1>Whatever...</h1></body>Whatever2 

Dieses generierte Dokument kann dann von loadHTML aufgerufen werden oder in welcher Weise Sie wollen.

Dies ist nur ein Hinweis darauf, in welche Richtung man denken kann - es gibt mehrere Lösungsansätze - ohne zu wissen, was Sie wirklich wollen - es ist nicht einfach, eine richtige Lösung zu nennen.

+0

Danke. Derzeit kann ein Benutzer eine Tabelle auf meiner Webseite erstellen, indem er Elemente aus einem Dropdown-Menü auswählt. Javascript erstellt diese Tabelle anhand ihrer Auswahl aus dem Dropdown-Menü. Ich möchte eine Schaltfläche haben, auf die der Benutzer klicken kann, um seine erstellte Tabelle in eine Datei zu speichern. Also muss ich auf das DOM der aktuellen Seite im Browser zugreifen und es an den Server zurückschicken und es in eine Datei schreiben. Recht? Ich kann Javascript verwenden, um auf das DOM der aktuellen Seite im Browser zuzugreifen. und ich kann PHP verwenden, um etwas in eine Datei auf dem Server zu schreiben. Ich weiß nicht, wie ich diese beiden Aktionen verbinden soll. – collwyn

+0

Sie möchten es auf dem Server speichern? Nun - wenn Sie auf das Dokument zugreifen können - senden Sie einfach den Inhalt davon per Parameter an eine PHP-Datei, die es wie oben erwähnt speichert. $ mycontent = $ _POST ['theDocument'] - kann per Javascript von Ajax aufgerufen werden. –

0

$_SERVER['SCRIPT_NAME'] für die Hauptdatei.

oder

__FILE__ für den vollständigen Pfad zu der Datei, in der diese aufgerufen wurde.

PHP hat keinen eingebauten DOM-Manipulator wie jQuery - html-Ausgabe wird in der Regel durch eine Template-Engine Ihrer Wahl oder manuell generiert. Wenn Sie DOM-Manipulation wie jQuery wollen, möchten Sie vielleicht PHPQuery ausprobieren

http://code.google.com/p/phpquery/

Verwandte Themen