Привет. У меня есть большая сформированная таблица в html, т.е. посетитель вводит некие данные, отправляет их на данную страницу где эти данные обрабатываются и результат получается в виде таблицы. Под таблицей есть так же форма для заполнения контактных данных. Задача у меня стоит что бы при отправке этой формы, отправлялась так же и сформированная таблица. Т.е. вопрос: как вместе с формой, отправить сформированную таблицу? Может возможно как-то прикрепить всё содержимое <table></table>? Помогите пожалуйста
Первое, что приходит в голову, так это в форму добавить скрытое поле <textarea>, куда и добавлять копию вашей таблицы. Второй вариант - использовать JS/jQuery, но это уже другая история.
При таком раскладе в textarea будет просто исходный код... Про JS тоже думал, но я в нём не силён, если других вариантов не найду придется копаться
С помощью JQuery можно обрабатывать таблицы так, превращая данные в переменные. А лучше плагин скачать специально для работы с таблицами. JS, конечно, нужно знать хоть на таком уровне, чтобы можно было разобраться, что куда копипейстить. Конкретно про отправку таблицы страница. Добавлено спустя 37 минут 4 секунды: Потестил сам этот плагин. Получается, что нужно всё равно в каждой ячейке делать элемент input с уникальным именем в параметре name для последующей сериализации. То есть будет отправляться точно так же, как если обернуть таблицу в form и сделать кучу input-ов. Это, конечно, не передача HTML, но верный способ передать данные, по которым можно сформировать таблицу, сделать запись в БД и т.д. Если нужно передать именно HTML, то нужно из документа достать всю таблицу. Но не возникнет ли потом необходимости парсить все эти данные и разбирать по полочкам?
Спасибо огромное за ответ! Нет, парсить потом ни чего не надо, сформированная таблица должна будет быть отправлена на email. Вариант с input-Ами не очень удобен так как формирование таблицы происходит очень сложно. Лучший вариант занести в переменную все содержимое между <table></table> и потом всё это отправить
По-моему, всё это плохая идея. Код (PHP): <script type="text/javascript"> function sendTable(){ var iHTML = document.getElementById("tbl").innerHTML; document.getElementById("tableout").attributes["value"].value = '<table>'+iHTML+'</table>'; } </script> <form id="frm" method="post" onsubmit="sendTable()"> <div><input type="submit" value="отправить таблицу" /></div> <div><input type="hidden" name="tableout" id="tableout" type="text" value="" /></div> </form> <table width="900" id="tbl"> <thead> <tr><td>2</td><td>4</td><td>6</td><td>8</td><td>10</td><td>12</td><td>14</td><td>16</td></tr> </thead> <tbody> <tr><td>2</td><td>4</td><td>8</td><td>16</td><td>32</td><td>64</td><td>128</td><td>256</td></tr> <tr><td>2</td><td>4</td><td>8</td><td>16</td><td>32</td><td>64</td><td>128</td><td>256</td></tr> <tr><td>2</td><td>4</td><td>8</td><td>16</td><td>32</td><td>64</td><td>128</td><td>256</td></tr> <tr><td>2</td><td>4</td><td>8</td><td>16</td><td>32</td><td>64</td><td>128</td><td>256</td></tr> </tbody> </table> Браузеры добавляют свои аттрибуты к ячейкам. А нельзя просто временно сохранить в файл эту уже сформированную сложным способом таблицу, потом подцеплять при отправке письма? Это лучше, чем зависимость от JS в браузерах клиентов.
Спасибо Вам большое за скрипт! По поводу того что лучше - согласен, но ведь всё равно таблицу необходимо как-то занести в тот же файл, т.е. всё равно необходимо её пропарсить. Сам не в восторге от необходимости использовать js