За последние 24 часа нас посетили 17554 программиста и 1309 роботов. Сейчас ищет 1131 программист ...

Отправить сформированный код HTML

Тема в разделе "Работа с почтой", создана пользователем katalizator, 24 мар 2013.

  1. katalizator

    katalizator Активный пользователь

    С нами с:
    28 апр 2011
    Сообщения:
    8
    Симпатии:
    0
    Привет.

    У меня есть большая сформированная таблица в html, т.е. посетитель вводит некие данные, отправляет их на данную страницу где эти данные обрабатываются и результат получается в виде таблицы.

    Под таблицей есть так же форма для заполнения контактных данных.
    Задача у меня стоит что бы при отправке этой формы, отправлялась так же и сформированная таблица.

    Т.е. вопрос: как вместе с формой, отправить сформированную таблицу?
    Может возможно как-то прикрепить всё содержимое <table></table>?

    Помогите пожалуйста :(
     
  2. Deonis

    Deonis Старожил

    С нами с:
    15 фев 2013
    Сообщения:
    1.521
    Симпатии:
    504
    Первое, что приходит в голову, так это в форму добавить скрытое поле <textarea>, куда и добавлять копию вашей таблицы. Второй вариант - использовать JS/jQuery, но это уже другая история.
     
  3. katalizator

    katalizator Активный пользователь

    С нами с:
    28 апр 2011
    Сообщения:
    8
    Симпатии:
    0
    При таком раскладе в textarea будет просто исходный код...
    Про JS тоже думал, но я в нём не силён, если других вариантов не найду придется копаться :(
     
  4. YSandro

    YSandro Старожил

    С нами с:
    7 апр 2011
    Сообщения:
    2.523
    Симпатии:
    2
    С помощью JQuery можно обрабатывать таблицы так, превращая данные в переменные.
    А лучше плагин скачать специально для работы с таблицами. JS, конечно, нужно знать хоть на таком уровне, чтобы можно было разобраться, что куда копипейстить. Конкретно про отправку таблицы страница.

    Добавлено спустя 37 минут 4 секунды:
    Потестил сам этот плагин. Получается, что нужно всё равно в каждой ячейке делать элемент input с уникальным именем в параметре name для последующей сериализации. То есть будет отправляться точно так же, как если обернуть таблицу в form и сделать кучу input-ов. Это, конечно, не передача HTML, но верный способ передать данные, по которым можно сформировать таблицу, сделать запись в БД и т.д.
    Если нужно передать именно HTML, то нужно из документа достать всю таблицу. Но не возникнет ли потом необходимости парсить все эти данные и разбирать по полочкам?
     
  5. katalizator

    katalizator Активный пользователь

    С нами с:
    28 апр 2011
    Сообщения:
    8
    Симпатии:
    0
    Спасибо огромное за ответ! Нет, парсить потом ни чего не надо, сформированная таблица должна будет быть отправлена на email. Вариант с input-Ами не очень удобен так как формирование таблицы происходит очень сложно. Лучший вариант занести в переменную все содержимое между <table></table> и потом всё это отправить
     
  6. YSandro

    YSandro Старожил

    С нами с:
    7 апр 2011
    Сообщения:
    2.523
    Симпатии:
    2
    По-моему, всё это плохая идея.
    Код (PHP):
    1. <script type="text/javascript">
    2. function sendTable(){
    3.     var iHTML = document.getElementById("tbl").innerHTML;
    4.     document.getElementById("tableout").attributes["value"].value = '<table>'+iHTML+'</table>';
    5. }
    6. </script>
    7.  
    8. <form id="frm" method="post" onsubmit="sendTable()">
    9.     <div><input type="submit" value="отправить таблицу" /></div>
    10.     <div><input type="hidden" name="tableout" id="tableout" type="text" value="" /></div>
    11. </form>
    12.  
    13. <table width="900" id="tbl">
    14. <thead>
    15. <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>
    16. </thead>
    17. <tbody>
    18. <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>
    19. <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>
    20. <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>
    21. <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>
    22. </tbody>
    23. </table>
    Браузеры добавляют свои аттрибуты к ячейкам. А нельзя просто временно сохранить в файл эту уже сформированную сложным способом таблицу, потом подцеплять при отправке письма? Это лучше, чем зависимость от JS в браузерах клиентов.
     
  7. katalizator

    katalizator Активный пользователь

    С нами с:
    28 апр 2011
    Сообщения:
    8
    Симпатии:
    0
    Спасибо Вам большое за скрипт!

    По поводу того что лучше - согласен, но ведь всё равно таблицу необходимо как-то занести в тот же файл, т.е. всё равно необходимо её пропарсить. Сам не в восторге от необходимости использовать js