2010-11-18 8 views
0

(1) Auf der Serverseite habe ich ein Stück PHP-Code, der Daten aus DB und konvertiert sie in eine Art Javascript Array/Matrix, lassen Sie uns einfach die PHP_OUTPUTPHP zu Javascript und zurück zu HTML Design Problem

nennen

(2) Auf der Client-Seite habe ich ein Stück Javascript-Code, der die PHP_OUTPUT übernimmt und es als HTML-Tabelle rendert.

Leider liest Google Javascript nicht, also wenn ich möchte, dass Google den Inhalt der HTML-Tabelle sieht, muss ich in der Seite das echte HTML der Tabelle aufschreiben. So jetzt brauche ich ein neues Stück PHP-Code, um selbst die gleiche HTML-Tabelle durch den Javascript-Code erstellt zu erstellen.

Ein Weg ist offensichtlich, in PHP den gesamten Javascript-Code neu zu schreiben, der die HTML-Tabelle rendert. Code Neuschreiben ist ein Sport, den ich nicht mag.

Eine andere Art und Weise (ich weiß nicht, wenn möglich) ist in gewisser Weise:

a) (1) haben die PHP_OUTPUT zu (2) zu übergeben,

b) dann (2) erstellt die HTML-Tabelle und sendet (in gewisser Weise) die HTML-Quelle der Tabelle an den Server,

c) schließlich notiert das NEUE Stück PHP-Code auf dem Server nur die Quelle mit einem einfachen echo.

Es ist verschachtelt, aber das würde reduzieren die Menge an Code auf fast Null geschrieben werden.

Aber gibt es eine einfache Möglichkeit, diese Art von Sachen zu tun?


Hoffnung, die Sie verstehen, was ich schrieb, plz Kommentare nach Erklärungen zu fragen.

Danke für jede Antwort.

+1

Komm schon. Das Schreiben dieser von php generierten Tabellen sollte 10 Minuten dauern. Wahrscheinlich weniger als die Zeit haben Sie gefragt, diese – Zlatev

+0

@Zlatev: Wenn Sie wollen, gebe ich Ihnen den Code zu schreiben. Ich mache nur Spaß. Ich habe nicht alles in der Frage erklärt, weil ich nicht wollte, dass es zu verwirrt wird. Das Schreiben eines PHP zum Speichern einer einfachen Tabelle ist kein Problem, das Problem ist, dass die von JavaScript gerenderte HTML TABLE sehr kompliziert ist, Klassen für jede Spalte enthält, um das Rendering zwischen strings/int/dates usw. zu unterscheiden. Außerdem nimmt die PHP-Funktionsschnittstelle Eingaben vor Parameter in einem speziellen Format, das ich beibehalten möchte: Sie können Header ändern und Spaltentypen definieren. –

+0

Dies ist nicht sehr hilfreich, da es alles Alpha-Level-Code ist, aber das ist ziemlich ordentlich http://developer.yahoo.com/yui/theater/video.php?v=glass-node –

Antwort

1

Könnten Sie nicht einfach die PHP auch die DB-Daten in ein verstecktes div irgendeiner Art ablegen? Wenn es nur für Indizierungszwecke ist, muss es nicht notwendigerweise in einem für Menschen lesbaren Tabellenformat vorliegen, oder?

+0

Nein, Seitengröße wird zunehmen fast doppelt – ajreal

+0

Neben dem, was Ajreal gesagt hat, glaube ich, dass Google sieht, dass die Dump-Daten in einem "display: none" DIV sind und ignoriert sie. –

+0

Kann wahr sein, aber Sie können das DIV immer mit JavaScript verstecken – Zlatev

3

Wenn Sie in der Lage sind, HTML auf der Serverseite zu erstellen, warum brauchen Sie dann überhaupt JavaScript? Ich würde sagen, der einfachste Weg wäre, Ihren PHP-Code zu verwenden, der den HTML-Code erstellt, den Sie benötigen, und den JavaScript-Code zusammen loszuwerden.

+0

Javascript dynamisch gerenderten Tabelle ar sehr nützlich, sie können Zeilen sehr schnell auf der Client-Seite zu sortieren, ohne jedes Mal auf einen Server-Aufruf zu wiederholen. Jedenfalls ist das nicht der Punkt der Frage. Nun erstellt der PHP auf dem Server NICHT den HTML-Code, sondern einen Teil des Javascript-Codes, der von Javascript auf der Clientseite interpretiert wird. –

+0

@Marco Demaio Sie können eine HTML-Tabelle in PHP auf dem Server rendern und trotzdem in JavaScript sortieren, ohne zum Server zurückkehren zu müssen. Es klingt wie du sagst, dass du PHP hast, das JavaScript generiert, das HTML generiert ... warum nicht den mittleren Mann ausschneiden? –

+0

danke für Ihre Antwort. Es wäre schön, wenn Sie mir mehr erklären könnten. Ich weiß, ich könnte tun, was du sagst, aber wie würdest du dann den Tisch mit JS sortieren? Sie würden ein JS-Objekt benötigen, um durch alle Tabellenzeilen/Zellen hindurchzugehen, alle in Zellen gefundenen Daten im Speicher zu speichern und diese Daten dann im Speicher zu sortieren und schließlich die Tabelle in HTML auszugeben. Mein PHP-Code erstellt bereits diesen Typ von JS-Objekt mit allen bereits im Speicher befindlichen Zeilen/Zellen. Auf diese Weise muss dieses JS-Objekt nicht zuerst durch die Tabelle gehen, um alle Zeilen/Zellen-Daten in seinem Speicher zu speichern. –