Есть Код (Text): <div id="div"> тут всякие инпуты textarea и т.д. </div> Мне нужно сохранить html код дива, включая его самого в переменную средствами php. $div=...?? Потом эту переменную я сохраню в ячейку базы данных. Что нужно по безопасности предусмотреть? Заранее спасибо
PHP: $div = '<div id="div"> тут всякие инпуты textarea и т.д. </div>'; 1) Использование mysqli_real_escape 2) Соблюдение правила четырех кодировок: кодировка скрипта, данных, соединения с БД и столбца в БД должны совпадать.
Мне нужно сохранить кусок кода html(таблица с данными) чтобы потом ее вывести в тело документа. Отдельно данные сохранять нет необходимости. Нужно просто кусок кода из div получить и сохранить
@andreyatake клон темы? Код (Text): $div='<div id="div"> тут какая-то таблица </div>'; сохранить Код (Text): $val=$_POST['колонка1_Строка1'].$_POST[колонка1_строка2]................ или циклом а если нет других $_POST то implode();
1) Почему просто не хранить данные и не генерировать таблицу на лету? 2) Почему просто не хранить HTML-фрагмент в виде подключаемого HTML-файла?
Я специально кратко описал, чтобы проблема была ясна. В диве есть текстовые поля, которые заполняет пользователь, их нужно сохранить в базу данных. Т.к. структура может поменяться, то сохранять отдельно данные каждой ячейки я не хочу, поэтому нужно весь див с данными зафигарить в базу данных. И выводить, когда понадобится.
Я так понимаю тут сохраняется значение каждой ячейки, мне же нужно получить весь html код конкретного дива. там не только таблица.
Грабер скачивает инфу с чужих сайтов. Мне же нужно что-то типа как в JS inner.HTML Просто взять кусок кода и приравнять его к переменной, и все.
Так, а теперь опишите еще на уровень выше. Тут явно какая-то лютая "проблема X-Y". Сдается мне, решение может быть гораздо проще.
@andreyatake, погоди-ка. Т.е. у тебя есть что-то вроде: Код (HTML5): <div id='a'><input name='b' type=text><input name='c' type=text><input name='d' type=text></div> и теперь ты хочешь, чтобы вот именно этот html сохранился в базу, при этом также введённые данные стали бы атрибутами value? Так что-ли? Может это и можно решить, только что ты с этой хренью в базе потом намерен делать? --- Добавлено --- Хотя, вот сейчас попробовал document.getElementById("a").innerHTML, он тоже введённые данные не подставляет никуда. Так что это надо какое-то сочинение на тему городить
Все правильно. Дело в том что пользователь должен составить на сайте отчет в виде таблицы. Там у меня инпуты текстовые. Если пользователю нужно, он добавляет новую строку с инпутами. Т.е. колтчество инпутов каждый раз разное. Количество строк будет примерно 10-20 и в каждой строке 6 столбцов. Данные эти потом нужно будет выводить из базы данных. А пользователей несколько и отчетов много. Сохранять все инпуты отдельно - дичайший геморой. Я хз как это сделать просто. Я думал что можно спарсить кусок html и его в базу закинуть. Как вывести из базы и использовать этот кусок html я знаю, но как засунуть с введенными значениями хз. Неужели нет никаких средств это решить?
Ну делается так, по-нормальному (если все столбцы во всех отчётах одинаковые). Таблица User c пользователями Таблица Report с отчётами, связь с пользователем один-ко-многим (один пользователь, много отчётов) Таблица ReportItems со строками отчёта, связь один-ко-многим с Report (один отчёт, много элементов) Согласен, немного сложнее сохранять, зато потом можно делать удобные выборки. Куски HTML в базе хранятся в случае, если их потом просто в таком виде и надо выплюнуть, т.е. если данными является сам HTML (ну как например, это сообщение на форуме)
@andreyatake, если нужен именно кусок кода я бы сделал так: HTML: // Форма с таблицей отчета <table> <tr> <td> <input name="col_0_item_1" type="text"> </td> <td> <input name="col_1_item_1" type="text"> </td> <td> <input name="col_2_item_1" type="text"> </td> <td> <input name="col_3_item_1" type="text"> </td> <td> <input name="col_4_item_1" type="text"> </td> <td> <input name="col_5_item_1" type="text"> </td> </tr> <tr> <td> <input name="col_0_item_2" type="text"> </td> <td> <input name="col_1_item_2" type="text"> </td> <td> <input name="col_2_item_2" type="text"> </td> <td> <input name="col_3_item_2" type="text"> </td> <td> <input name="col_4_item_2" type="text"> </td> <td> <input name="col_5_item_2" type="text"> </td> </tr> </table> // ну и так далее... PHP: // А дальше получаем массив GET или POST <?php $report_arr = $_POST; $report = '<table>'; // Через цикл добавляем в переменную строчки с данными for ($i=1; $i<=count($report_arr)/6; $i++) { $report .= "<tr> <td>" .$report_arr['col_0_item_'.$i]. "</td> <td>" .$report_arr['col_1_item_'.$i]. "</td> <td>" .$report_arr['col_2_item_'.$i]. "</td> <td>" .$report_arr['col_3_item_'.$i]. "</td> <td>" .$report_arr['col_4_item_'.$i]. "</td> <td>" .$report_arr['col_5_item_'.$i]. "</td> </tr>"; } $report .= '</table>'; // Переменная $report содержит кусок кода с таблицей и данными. ?> Не претендую на правильность решения, просто показал как бы сделал я. А вообще, все-таки лучше, такие дела хранить в базе данных ИМХО.
Ну, что поделать Хотя, как мне кажется, лучше уж было бы тогда эти отчёты в отдельные файлы запихивать, а в базу записывать только название файла. Но, хозяин - барин!