2010-11-18 2 views
0

(1) На стороне сервера У меня есть фрагмент кода PHP, который берет данные из БД и преобразует их в своего рода массив/матрицу Javascript, просто назовите его PHP_OUTPUTPHP для Javascript и обратно к проблеме HTML-дизайна

(2) На стороне клиента у меня есть кусок кода Javascript, который принимает PHP_OUTPUT и отображает его как таблицу HTML.

К сожалению, Google не читает Javascript, поэтому, если я хочу, чтобы Google отображал содержимое таблицы HTML, я должен записать на странице настоящий HTML-код таблицы. Итак, теперь мне нужен новый кусок PHP-кода, чтобы создать САМУЮ ТАКУЮ таблицу HTML, созданную кодом Javascript.

Одним из способов является, очевидно, переписать в PHP весь код Javascript, который отображает таблицу HTML. Переписывание кода - это спорт, который мне не нравится.

Другой способ (я не знаю, если это возможно) в некотором роде:

а) у (1), чтобы передать PHP_OUTPUT в (2),

б), а затем (2) создает HTML-таблицу и отправляет (в некотором роде) обратно HTML-источник таблицы на сервер,

c) наконец, НОВЫЙ фрагмент кода PHP на сервере просто записывает источник с помощью простого echo.

Это свернуто, но это будет уменьшить количество кода, которое должно быть записано до нуля.

Но есть ли простой способ сделать этот материал?


Надеюсь, вы понимаете, что я написал, плз комментарии попросить объяснений.

Спасибо за любой ответ.

+1

Да ладно. Запись написанных php таблиц должна составлять 10 минут работы MAX. Вероятно, меньше времени, проведенного вами, спрашивая об этом – Zlatev

+0

@Zlatev: если вы хотите, я даю вам код для написания. Просто шучу. Я не объяснил все на этот вопрос, потому что я не хотел, чтобы он слишком запутался. Написание PHP для выгрузки простой таблицы не является проблемой, проблема в том, что HTML TABLE, отображаемый Javacript, очень сложный, содержит классы в каждом столбце, чтобы отличать рендеринг между строками/int/датами и т. Д., Кроме того, интерфейс функций PHP принимает входные данные параметр в специальном формате, который я хотел бы сохранить: он позволяет изменять заголовки и определять типы столбцов. –

+0

Это не очень полезно, потому что это все код альфа-уровня, но это довольно опрятно. Http://developer.yahoo.com/yui/theater/video.php?v=glass-node –

ответ

1

Не могли бы вы просто заставить PHP также сбрасывать данные БД в скрытый div какого-то рода? Если это просто для целей индексирования, это необязательно должно быть в формате таблицы, пригодном для чтения человеком, не так ли?

+0

НЕТ, размер страницы увеличится почти удвоенный – ajreal

+0

Помимо того, что сказал аджреал, я думаю, Google видит, что данные сбрасываются внутри «display: none» DIV и игнорируют их. –

+0

Может быть правдой, но вы всегда можете скрыть это DIV с помощью javascript – Zlatev

3

Если вы можете создать HTML-код на стороне сервера, зачем вам нужен JavaScript? Я бы сказал, что самый простой способ - использовать ваш PHP-код, который создает HTML-код, который вам нужен, и избавиться от JavaScript все вместе.

+0

Javascript динамически отображаемая таблица очень полезна, они могут сортировать строки очень быстро на стороне клиента, не повторяясь каждый раз на вызов сервера. Во всяком случае, это не вопрос. Теперь на сервере PHP НЕ создает HTML, а часть кода Javascript, который будет интерпретироваться Javascript на стороне клиента. –

+0

@Marco Demaio вы можете визуализировать HTML-таблицу в PHP на сервере и по-прежнему сортировать ее на JavaScript без необходимости возвращаться на сервер. Похоже, вы говорите, что у вас есть PHP, который генерирует JavaScript, который генерирует HTML ... почему бы не вырезать среднего человека? –

+0

Спасибо за ваш ответ. Было бы неплохо, если бы вы могли объяснить мне больше. Я знаю, что могу сделать, если вы скажете, но как бы вы сортировали таблицу с помощью JS? Вам понадобится объект JS, чтобы пройти через все строки/ячейки таблицы, сохранить в памяти все данные, найденные в ячейках, а затем отсортировать эти данные в памяти и, наконец, отобразить таблицу в HTML. Мой PHP-код создает уже этот тип JS-объекта со всеми строками/ячейками, уже находящимися в его памяти, таким образом, этот JS-объект не должен идти первым через таблицу, чтобы хранить в своей памяти все данные строк/ячеек. –

Смежные вопросы