Вход на сайт
PHP. Приемы программирования.
286 просмотров
Перейти к просмотру всей ветки
Последний раз изменено 31.01.06 00:14 (Vijon)
Следующий вопрос может быть сформулирован не только для PHP, но и для ряда других серверных скриптов.
Я описываю код лишь в общих чертах, и если что-либо будет неясно, охотно внесу уточнения.
Имеется некая HTML-таблица, содержимое которой нужно отредактировать и запомнить:
Вариант 1.
Таблица строится в виде:
а на сервере выполняется примерно следующий код:
Вариант 2.
Содержимое таблицы конвертируется в XML (или таблица связана с XML-островом):
и посылается на сервер, где из XML генерируются соответствующие SQL-запросы.
Вариант 3.
Каждая строка таблицы запоминается индивидуально, с использованием вариантов 1 или 2.
Ява-скрипт функция SomeHandler() посылает на сервер содержимое нужной строки таблицы.
А какие именно варианты используют уважаемые коллеги (разумеется, выбирать из вышеперечисленных необязательно
)?
Я описываю код лишь в общих чертах, и если что-либо будет неясно, охотно внесу уточнения.
Имеется некая HTML-таблица, содержимое которой нужно отредактировать и запомнить:
В ответ на:
[table]
[tr]
[td][input type=text][/td]
[td][input type=text][/td]
[td][input type=checkbox value=SomeValue][/td]
[/tr]
[tr]
[td][input type=text][/td]
[td][input type=text][/td]
[td][input type=checkbox value=SomeValue][/td]
[/tr]
...........................
[/table]
[table]
[tr]
[td][input type=text][/td]
[td][input type=text][/td]
[td][input type=checkbox value=SomeValue][/td]
[/tr]
[tr]
[td][input type=text][/td]
[td][input type=text][/td]
[td][input type=checkbox value=SomeValue][/td]
[/tr]
...........................
[/table]
Вариант 1.
Таблица строится в виде:
В ответ на:
[form method=post action=thisURL]
[table]
[tr]
[td][input type=text name=0-field0][/td]
[td][input type=text name=0-field1][/td]
[td][input type=checkbox name=0-field2 value=SomeValue][/td]
[/tr]
[tr]
[td][input type=text name=1-field0][/td]
[td][input type=text name=1-field1][/td]
[td][input type=checkbox name=1-field2 value=SomeValue][/td]
[/tr]
...........................
[/table]
[/form]
[form method=post action=thisURL]
[table]
[tr]
[td][input type=text name=0-field0][/td]
[td][input type=text name=0-field1][/td]
[td][input type=checkbox name=0-field2 value=SomeValue][/td]
[/tr]
[tr]
[td][input type=text name=1-field0][/td]
[td][input type=text name=1-field1][/td]
[td][input type=checkbox name=1-field2 value=SomeValue][/td]
[/tr]
...........................
[/table]
[/form]
а на сервере выполняется примерно следующий код:
В ответ на:
$fields=SomeFunction($tablename,0); //Функция, возвращающая хэш с характеристиками полей заданной таблицы.
for ($i=0; $i<$rowscount; $i++)
{
//Строится SQL-запрос со значениями: $_POST[$i.└-⌠.$fields[0][⌠name■]], $_POST[$i.└-⌠.$fields[1][⌠name■]]...
}
$fields=SomeFunction($tablename,0); //Функция, возвращающая хэш с характеристиками полей заданной таблицы.
for ($i=0; $i<$rowscount; $i++)
{
//Строится SQL-запрос со значениями: $_POST[$i.└-⌠.$fields[0][⌠name■]], $_POST[$i.└-⌠.$fields[1][⌠name■]]...
}
Вариант 2.
Содержимое таблицы конвертируется в XML (или таблица связана с XML-островом):
В ответ на:
[root]
[tablename]
[field0]value00[/field0]
[field1]value01[/field1]
[field2]value02[/field2]
[/tablename]
[tablename]
[field0]value10[/field0]
[field1]value11[/field1]
[field2]value12[/field2]
[/tablename]
......
[/root]
[root]
[tablename]
[field0]value00[/field0]
[field1]value01[/field1]
[field2]value02[/field2]
[/tablename]
[tablename]
[field0]value10[/field0]
[field1]value11[/field1]
[field2]value12[/field2]
[/tablename]
......
[/root]
и посылается на сервер, где из XML генерируются соответствующие SQL-запросы.
Вариант 3.
Каждая строка таблицы запоминается индивидуально, с использованием вариантов 1 или 2.
В ответ на:
[table]
[tr]
[td][input type=text][/td]
[td][input type=text][/td]
[td][input type=checkbox value=SomeValue][/td]
[td][input type=button value=Save onclick=SomeHandler()][/td]
[/tr]
[tr]
[td][input type=text][/td]
[td][input type=text][/td]
[td][input type=checkbox value=SomeValue][/td]
[td][input type=button value=Save onclick=SomeHandler()][/td]
[/tr]
...........................
[/table]
[table]
[tr]
[td][input type=text][/td]
[td][input type=text][/td]
[td][input type=checkbox value=SomeValue][/td]
[td][input type=button value=Save onclick=SomeHandler()][/td]
[/tr]
[tr]
[td][input type=text][/td]
[td][input type=text][/td]
[td][input type=checkbox value=SomeValue][/td]
[td][input type=button value=Save onclick=SomeHandler()][/td]
[/tr]
...........................
[/table]
Ява-скрипт функция SomeHandler() посылает на сервер содержимое нужной строки таблицы.
А какие именно варианты используют уважаемые коллеги (разумеется, выбирать из вышеперечисленных необязательно

I find my way through night and day'cause I know I just can't stayhere in heaven