Войти

Показать полную графическую версию : Админ интерфейс для редактирования прайса на странице.


Jekamajor
16-04-2004, 03:09
Как можно осуществить автоматическое изменение прайса на веб-странице, состоящего из таблиц и ячеек, путем редактирования на другой странице специальной формы.
То есть чтобы изменить содержимое ячеек прайса, мы переходим, например, по определенной ссылке, вводим пароль и изменяем нужные цифры, затем нажимаем сохранить и в результате эти изменения сохраняются в прайсе. Может нужно какой скрипт написать... в каком формате должна быть сама страница с прайсом? php или shtml?
Если можете помогите, если можно, хотя бы пример кода для изменения одной ячейки. Спасибо!

Prisoner
16-04-2004, 03:46
Скажем тот же MS Excel умеет сохранять табличку (односложную, то есть само тело прайса, без всяких наворотов вроде шапки с картинкой и адресом) в формате csv - там строки это строки, а вот разделители ячеек скажем символ ;. Таким образом надо написать скрипт который будет на основе разбора такого файла генерировать страничку с прайсом. Файл можно заливать вручную или написать маленький интерфейс защищенный паролем.

Jekamajor
16-04-2004, 14:32
А вот допустим кусок кода из уже готовой станицы .shtm, который когда-то генерировался каким-то скриптом. Я просто в этом слабо понимаю :( и хотелось бы узнать, (если из приведенного кода ниже видно) что использовалось для генерирования вот этого фрагмента кода таблицы с прайсом.
Вот эти вот переменные или что это x:str, потом слова между символами <!--  и  -->. Это к чему? Просто нужно разобраться как генерировался на этой странице прайс...
 Сначала вот это:
<!-- #BeginEditable "(:%3E4 ?5@54 BM3%3E%3C HTML)" --><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<!-- #EndEditable --><HTML><!-- InstanceBegin template="/Templates/template.dwt" codeOutsideHTMLIsLocked="false" -->
<HEAD>
<!-- InstanceBeginEditable name="doctitle" -->
<TITLE>???????? ??????? - ????</TITLE>
<!-- InstanceEndEditable -->
<!-- InstanceBeginEditable name="head" -->


Потом вот это:
<table x:str border=1 cellpadding=0 cellspacing=0 width=566 style='border-collapse:
collapse;table-layout:fixed;width:406pt'>
                     <col class=xl24 width=152 style='mso-width-source:userset;mso-width-alt:5558;
width:114pt'> <col class=xl24 width=25 style='mso-width-source:userset;mso-width-alt:914;
width:19pt'> <col class=xl24 width=29 style='mso-width-source:userset;mso-width-alt:1060;
width:22pt'> <col class=xl24 width=21 style='mso-width-source:userset;mso-width-alt:768;
width:16pt'> <col class=xl24 width=28 style='mso-width-source:userset;mso-width-alt:1024;
width:21pt'> <col class=xl24 width=21 style='mso-width-source:userset;mso-width-alt:768;
width:16pt'> <col class=xl24 width=27 style='mso-width-source:userset;mso-width-alt:987;
width:20pt'> <col class=xl24 width=22 style='mso-width-source:userset;mso-width-alt:804;
width:17pt'> <col class=xl24 width=25 style='mso-width-source:userset;mso-width-alt:914;
width:19pt'> <col class=xl24 width=21 style='mso-width-source:userset;mso-width-alt:768;
width:16pt'> <col class=xl24 width=30 style='mso-width-source:userset;mso-width-alt:1097;
width:23pt'>
                     <tr class=xl139 height=18 style='mso-height-source:userset;height:13.5pt' bgcolor="#CCFFCC">
                       <td height=47 class=xl129 style='height:13.5pt' width="171">
                         <font face="Arial, Helvetica, sans-serif" size="2">?????
                         - ????????????<span
 style='display:none'>?:</span></font></td>
                       <td colspan=2 class=xl130 style='border-right:.none' solid black;border-left:
 none' height="47">  

mar
16-04-2004, 16:06
это не скрипт, это статический html, полученный путем отдаленной гибридизации страницы, сгенерированной word-ом (mso-width-source:userset;mso-width-alt:914) и dreamwiever-а (директивы #BeginEditable)

я бы использовала либо php (скажем phplib)  шаблоны и вставки на на php, если надо все это счастье вводить из броузера, либо, как предложил Prisoner - csv, причем можно просто злобно и цинично одеть его текс тегами pre :)

Jekamajor
16-04-2004, 19:08
mar
Правильно, не скрипт! Я вот и хотел узнать как генерируется это файл html.
А на счет шаблонов Вы что имели ввиду? готовый скрипт на php? Его можно найти в интернете?

Prisoner
17-04-2004, 04:29
А как получают электроэнергию? Правильно, различными способами. Так и тут. Можно с помощью различных WYSIWYG редакторов или применяя языки программирования (почти какие угодно). Самое главное чтобы на выходе был корректный html код. Например - perl, php, c. В вашем случае mar углядела применение редакторов MS Word и DreamWiever.
Что касается шаблонов, то это опять-таки аналогия реального мира - постоянные куски html кода страницы (шапка, подвал и прочее), а за вывод динамического содержимого (в вашем случае иногда меняющиеся данные прайс-листа) отвечают те или иные генераторы html кода. К примеру, php.

Jekamajor
22-04-2004, 14:07
С этим вопрос уже улажен.
Prisoner, спасибо, что всегда помогаете дельными советами.

А мой очередной вопрос такой:
Подскажите пожалуйста как можно сделать, чтобы скрипт определил, если
нажали на одну ссылку, то включать, допустим, файл text1.txt, а если
на другую, то, допустим, text2.txt
2 ссылки - это допустим:
<?=$PHP_SELF?>?module=text1 *и *<?=$PHP_SELF?>?module=text2 на одной
странице

Ну что-нибудь типа:
<?
if(!isset($HTTP_GET_VARS['module']) )
{
* * * *include("text1.txt");
} else...
?>
Хотя это конечно же не правильно :)

То есть страница одна и в зависимости от того, на какую ссылку нажмет человек, на эту страницу выведется text1.txt или text2.txt при помощи включения include

Речь идет, конечно же о php



Исправлено: Jekamajor, 14:13 22-04-2004

Jekamajor
22-04-2004, 22:59
Кому интересно, я нашел решение:
if(isset($_GET['module']))
{
   if($_GET['module']=='text1')
   {
      include('text1.txt');
   }else if($_GET['module']=='text1')
   {
      include('text1.txt');
   }
}

Prisoner
23-04-2004, 03:52
Jekamajor
Подобная проблема обсуждалась тут (http://forum.oszone.net/topic.cgi?forum=20&topic=598&start=0#9). Что разобрались - гуд, рад за вас. А за спасибо - спасибо :).
Однако в вашем коде вложенное условие проверяет тоже самое, что и внешнее да и реакция такая же.
Кроме того можно написать и так:

if (@$_GET['module'] == 'text1')
 {
   include_once('text1.txt');
 }

Собачка предотвратит вывод сообщения о неверном индексе массива, если в скрипт не будет передан параметр module.

Jekamajor
23-04-2004, 11:22
Да поправляюсь:
if(isset($_GET['module']))
{
* if($_GET['module']=='text1')
* {
* * *include('text1.txt');
* }else if($_GET['module']=='text2')
* {
* * *include('text2.txt');
* }
}

Забыл циферки поменять. Ну и конечно можно проверять не только 2, но и больше ссылок ;) else if else if else if :)
Но почему-то когда я убирал внешнее условие, скрипт не работал...

Исправлено: Jekamajor, 11:30 23-04-2004




© OSzone.net 2001-2012