Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Автозаполнение формы, что-то у меня тупняк 
V
    Опции темы
Kefir
Дата 11.1.2006, 00:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


«Hakuna Matata»
***


Профиль
Группа: Комодератор
Сообщений: 1878
Регистрация: 25.1.2003
Где: Tampere, Suomi

Репутация: 13
Всего: 87



Что-то думалка не работает...
У меня задача такая - есть некое подобие CMS и в этой системе само собой есть эдитор страниц. Проходит это примерно так:
1. пользователь выбирает страницу которую он хочет отредактировать
2. в отдельных ХТМЛ фалах хранятся формы для эдита различного типа страниц.
3. определяется тип страницы которую хочет отредактировать пользователь и при помощи file_get_contents возвращается (return) из функции форма.
4. Естесственно из мускула достаётся сама страница и получается ассоциативный массив.
Мне как-то пока ни одной нормальной мысли не пришло как сделать заполнение полученной формы значениями из БД...
Подскажите, пожалуйста, С лёгкостью могу отказаться от file_get_contents.
PM MAIL WWW Skype   Вверх
mr.fox
Дата 11.1.2006, 00:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 298
Регистрация: 13.3.2005
Где: Ирландия

Репутация: -1
Всего: 2



хм, а в чем собственно то загвоздка?
Код

$q=mysql_query("select `field` from `table` where ....");
echo '<input value="'.mysql_result($q,0).'">';

PM MAIL WWW ICQ   Вверх
Kefir
Дата 11.1.2006, 01:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


«Hakuna Matata»
***


Профиль
Группа: Комодератор
Сообщений: 1878
Регистрация: 25.1.2003
Где: Tampere, Suomi

Репутация: 13
Всего: 87



загвоздка в том, что форма редактирования хранится одним куском в отдельном ХТМЛ файле, т.е.
Код

<form action="trala.php" ...>
<input type="text" name="title">
<textarea name="..." ...></textarea>
<etc.etc.etc.>
</form>

Все формы разные. Пока что я не придумал ничего умнее парсинга самого ХТМЛ-а и вставления в него значения вручную.

Про конкатенцию я всё-таки знаю smile Но она не подходит.
PM MAIL WWW Skype   Вверх
mr.fox
Дата 11.1.2006, 01:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 298
Регистрация: 13.3.2005
Где: Ирландия

Репутация: -1
Всего: 2



Цитата(Kefir @ 11.1.2006, 01:21 Найти цитируемый пост)

Про конкатенцию я всё-таки знаю smile Но она не подходит.

smile

ну тогда прегами тебе придеться код резать и запихивать туда что уже надо.. почитай в мануале про преги и реги и все эти чудища smile
PM MAIL WWW ICQ   Вверх
Illuminaty
Дата 11.1.2006, 01:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


/*Антон Захаров*/
***


Профиль
Группа: Комодератор
Сообщений: 1238
Регистрация: 19.3.2005
Где: Россия, Казань

Репутация: 6
Всего: 56



Рассматривай XHTML-формы как XML документы и работай с ними
PM MAIL ICQ   Вверх
Kefir
Дата 11.1.2006, 01:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


«Hakuna Matata»
***


Профиль
Группа: Комодератор
Сообщений: 1878
Регистрация: 25.1.2003
Где: Tampere, Suomi

Репутация: 13
Всего: 87



пришла в голову идея - надо написать функцию, которая будет генерировать код наподобие
Код

$foo1 = "hahaa";
$foo2 = "hohoo";
return '
<form ...>
<input ... value="$foo1">
<input ... value="$foo2">
</form>';

затем функция делает eval() и нам возвращается код заполненой формы.
Если будут предложения попроще, я с удовольствием выслушаю!
Добавлено @ 01:34
чёрт, пока писал тут уже ответы появились smile с XML вообще мало знаком, честно говоря а с всякими регулярами связываться неохота. Если, Иллюминат, тебя не затруднит может напишешь пример как XML парсить - в том смысле как значения доставать и менять...
PM MAIL WWW Skype   Вверх
Mal Hack
Дата 11.1.2006, 13:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 122
Всего: 261



Kefir лучше так:
Код

function tpl ( $name , $arr )
{
return <<<EOF
<html>{$name} {$arr['22']}
<html>

EOF;
}

PM ICQ   Вверх
Kefir
Дата 11.1.2006, 19:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


«Hakuna Matata»
***


Профиль
Группа: Комодератор
Сообщений: 1878
Регистрация: 25.1.2003
Где: Tampere, Suomi

Репутация: 13
Всего: 87



Эээ... честно говоря я не совсем понимаю что получится... Поясни немного, пожалуйста... smile
PM MAIL WWW Skype   Вверх
Mal Hack
Дата 11.1.2006, 21:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 122
Всего: 261



Kefir
<<<EOF
....
EOF;
Это строка, аля "...";
Только там не надо ничего экранировать, переменные вставляются так, как я показал выше. IPB работает именно так.
PM ICQ   Вверх
Kefir
Дата 13.1.2006, 12:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


«Hakuna Matata»
***


Профиль
Группа: Комодератор
Сообщений: 1878
Регистрация: 25.1.2003
Где: Tampere, Suomi

Репутация: 13
Всего: 87



Помощи!
Сваял я файл с таким колом:
Код

<?php
    function tmp() {
        return <<<EOF
tralala
        EOF;
    }
    echo tmp();
?>

Вывод:
Parse error: parse error, unexpected $ in /var/www/test.php on line 9
Строк в файле 8и знаков $ нет аообще... я что-то неправильно делаю????
PM MAIL WWW Skype   Вверх
IZ@TOP
Дата 13.1.2006, 12:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Панда-бир!
****


Профиль
Группа: Участник
Сообщений: 4795
Регистрация: 3.2.2003
Где: Бамбуковый лес

Репутация: 44
Всего: 73



Kefir, перед "EOF;" не должно быть отступа.


--------------------
Один из розовых плюшевых-всадников апокалипсиса... очень злой...

Семь кругов ада для новых элементов языка
Мои разрозненные мысли
PM MAIL WWW ICQ Skype GTalk   Вверх
Kefir
Дата 13.1.2006, 12:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


«Hakuna Matata»
***


Профиль
Группа: Комодератор
Сообщений: 1878
Регистрация: 25.1.2003
Где: Tampere, Suomi

Репутация: 13
Всего: 87



Так, ок, я понял в чём моя ошибка smile - для тех кто ещё не знает - заканчивающий оператор "EOF" должен находится в самого начала строки (т.е. 1st column).
И на всякий случай кину ссылку на док
Добавлено @ 12:19
Изотоп, одновременно писали smile))
PM MAIL WWW Skype   Вверх
IZ@TOP
Дата 13.1.2006, 12:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Панда-бир!
****


Профиль
Группа: Участник
Сообщений: 4795
Регистрация: 3.2.2003
Где: Бамбуковый лес

Репутация: 44
Всего: 73



По теме

Я использую два способа:

1. Генерация XSLT из XML.

2. HTML шаблонны.

Если не хочешь заморачиваться с XML+XSLT, можно использовать шаблоны.

Например:

Код

<!-- template.htm -->
<form>
<input name="name" value="{@name}"/>
</form>


Код

<?php
/* form.php */

// Достаем данные из бд. Получаем массив $data = array('name' => 'IZ@TOP')

$template = preg_replace("/\{@([a-z0-9_\-)}\/ie", "replace('\\1')", $template);

function replace($key) {
    if(isset($GLOBALS['data'][$key])) {
        return $GLOBALS['data'][$key];
    }
    return '';
}

echo $template;
?>



--------------------
Один из розовых плюшевых-всадников апокалипсиса... очень злой...

Семь кругов ада для новых элементов языка
Мои разрозненные мысли
PM MAIL WWW ICQ Skype GTalk   Вверх
Kefir
Дата 13.1.2006, 14:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


«Hakuna Matata»
***


Профиль
Группа: Комодератор
Сообщений: 1878
Регистрация: 25.1.2003
Где: Tampere, Suomi

Репутация: 13
Всего: 87



Гм... Я об этом думал, только вот проблема, например, с <select> или же с file, т.к. если файл загружен, то вместо поля надо показывать имя файла и кнопку "удалить".
Однако вообще, пример с шаблонами мне очень даже понравился. Возьму на заметку.
PM MAIL WWW Skype   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1327 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.