Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Помогите с проверкой

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
vlom
Отправлено: 13 Декабря, 2010 - 14:45:14
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 681
Дата рег-ции: Окт. 2010  
Откуда: Екатеринбург


Помог: 4 раз(а)




PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. $step1 = $_POST['step'];
  3. if(!isset($_REQUEST['step2'])){
  4. ?>
  5. <form action="<?PHP $_SERVER['REQUEST_URI']?>" method="post">
  6.         <p>
  7.          <label>
  8.             <input type="radio" name="step" value="cms_articles" id="0">Ссылка на статью
  9.          </label><br>
  10.          <label>
  11.             <input type="radio" name="step" value="cms_sections" id="1">Ссылка раздел
  12.          </label><br>
  13.          <label>
  14.             <input type="radio" name="step" value="cms_categories" id="2">Ссылка категорию
  15.          </label><br>
  16.       </p>
  17.       <p>
  18.                 <span class='buttonContyner'>
  19.             <span class='l'></span>
  20.             <span class='r'></span>
  21.                         <input class='button' type='submit' name='step1' value='Далее' title='Далее' />
  22.          </span>
  23.         </p>
  24.         </form>
  25. <?PHP
  26.         }else{
  27.                 $_SESSION['step1'] = $_POST['step'];
  28.                 if(!isset($_REQUEST['step2'])){
  29.                
  30.                         $obj = new functions_pagenav;
  31.                         $obj->variable($_SERVER['step1']);
  32.                         $obj->begMess();
  33.                         $num = $obj->num;
  34.                         $start = $obj->start;
  35.                                        
  36.                         $connect = new functions_mysql;
  37.                         $connect->connect();
  38. ?><form action="<?PHP $_SERVER['REQUEST_URI']?>" method="post"><?              
  39.                         $result = mysql_query("SELECT id, title FROM ".$_SERVER['step1']." ORDER BY id DESC LIMIT $start, $num");
  40.                         while ($row = @mysql_fetch_array($result)){
  41.                                 echo "<p>
  42.                                                         <label>
  43.                                                                 <input type='radio' name='step2' value='".$row['id']."' id='".$row['id']."'>".$row['title']."
  44.                                                         </label><br>
  45.                                                 </p>";
  46.                         }
  47.                         if ($result == 0) {echo "<p style='text-align:center; margin-top:20px; font-size:14px; font-weight:bold'>
  48.                                                                                                   В БД нет ни одной записи</p>";
  49.                         }else $obj->echoNavLinc("menublocks&page=");
  50. ?>
  51.       <p>
  52.                 <span class='buttonContyner'>
  53.             <span class='l'></span>
  54.             <span class='r'></span>
  55.                         <input class='button' type='submit' name='step2' value='Далее' title='Далее' />
  56.          </span>
  57.         </p>
  58.         </form>
  59. <?PHP
  60.                 }else{
  61.                         switch ($_POST['step2'] !== ''){
  62.                                 case($_SESSION['step1'] = 'cms_sections'):
  63.                                         $_SESSION['step2'] = "com=content&sect=".$_POST['step2'];
  64.                                 break;
  65.                                
  66.                                 case($_SESSION['step1'] = 'cms_categories'):
  67.                                         $connect = new functions_mysql;
  68.                                         $connect->connect();
  69.                                         $result = mysql_query("SELECT `sect` FROM ".$_SERVER['step1']." WHERE `id`=".$_POST['step2']);
  70.                                         $row = mysql_fetch_array($result);
  71.                                         $_SERVER['step2'] = "com=content&sect=".$row['sect']."&cat=".$_POST['step2'];
  72.                                 break;
  73.                                
  74.                                 case($_SESSION['step1'] = 'cms_articles'):
  75.                                         $connect = new functions_mysql;
  76.                                         $connect->connect();
  77.                                         $result = mysql_query("SELECT `sect`, `cat` FROM ".$_SERVER['step1']." WHERE `id`=".$_POST['step2']);
  78.                                         $row = mysql_fetch_array($result);
  79.                                         $_SESSION['step2'] = "com=content&sect=".$row['sect']."&cat=".$row['cat']."&post=".$_POST['step2'];
  80.                                 break;
  81.                         }
  82.                         if(isset($_SESSION['step2']) && !isset($_REQUEST['newMenuPoints'])){?>
  83.                                 <form action='<?PHP $_SERVER['REQUEST_URI']?>' method='post'>
  84.                <p><b>{P_TITLE}</b>                  <input name='title' type='text' size='50' style="font-weight:normal;"></p>
  85.                  
  86.                <p><b>{P_ALIAS}</b>                  <input name='mtype' type='text' size='50' style="font-weight:normal;"></p>
  87.                  
  88.                <p><b>{P_M_TYPE}</b>                  <select name="type" style="width:250px; font-weight:normal;">
  89.                      <?PHP
  90.                      $result = mysql_query("SELECT `title`, `mtype` FROM `cms_menu_type`");
  91.                      while($row = mysql_fetch_array($result)){?>
  92.                      <option value="<?PHP echo $row['mtype']?>"><?PHP echo $row['title']?></option>
  93.                      <?PHP }?>
  94.                   </select>
  95.                  
  96.                <p>
  97.                   <span class='buttonContyner'>
  98.                      <span class='l'></span>
  99.                      <span class='r'></span>
  100.                      <input class='button' type='submit' name='newMenuPoints' value='{SAVE}' title='{SAVE}' />
  101.                   </span>
  102.                </p>
  103.             </form>
  104.                 <? }else{
  105.                        
  106.                         unset($_SESSION['step1'], $_SESSION['step2']);
  107.                         }
  108.                 }
  109.         }
  110. ?>

Ни как не могу решить задачу, по каким параметрам сделать проверку, чтобы сначала
выводилась первая форма, после нажатия Далее вторая, опять далее и третья форма. С
двумя получается, а с тремя ни как не могу. Просто не охота плодить лишнее файлы.
 
 Top
DlTA
Отправлено: 13 Декабря, 2010 - 14:58:21
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2952
Дата рег-ции: Окт. 2010  


Помог: 53 раз(а)




как-то не читабельно

но вообще предлагаю вместо введения кучи названий шагов ввести только 1 переменную шаг и в нее вписывать номер шага
а далее в свитче или ифами (как угодно)
перебирать
все-же луче использовать не
if(){}
else
{
if(){}
}

а испльзовать
if (){}
elseif() {}
elseif() {}

(Отредактировано автором: 13 Декабря, 2010 - 14:59:35)

 
 Top
Мелкий Супермодератор
Отправлено: 13 Декабря, 2010 - 15:00:55
Post Id



Активный участник


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


Помог: 618 раз(а)




PHP:
скопировать код в буфер обмена
  1. switch ($_POST['step']) {
  2. default:
  3. case 1:
  4. первая форма
  5. break;
  6. case 2:
  7. вторая форма
  8. break;
  9. ...
  10. }


-----
PostgreSQL DBA
 
 Top
vlom
Отправлено: 13 Декабря, 2010 - 15:04:57
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 681
Дата рег-ции: Окт. 2010  
Откуда: Екатеринбург


Помог: 4 раз(а)




DlTA пишет:
как-то не читабельно

просто для отступа использую tab и здесь на форуме вот такая дребидень выходит
Мелкий Спасибо. Тема закрыта.
(Добавление)
Честно говоря поторопился закрывать тему Подмигивание
переписал по совету мелкого, но вопрос так и остался открытым, по каким параметрам делать проверку
Спойлер (Отобразить)

в таком виде вообще ни чего не выводится
 
 Top
Мелкий Супермодератор
Отправлено: 13 Декабря, 2010 - 16:00:19
Post Id



Активный участник


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


Помог: 618 раз(а)




Варианта 2
0) пробрасывать номер step'a через hidden-поле, что предпочтительнее на мой взгляд - бегала информация, что браузеры не всегда отправляют кнопку, особенно если форма была нажата через энтер.
1) " name='step[3]'"
номер-то не в значении, а в ключе, так что надо как-то так: (я почему-то подумал, что значение передаётся как скрытое поле, а не кнопкой)
PHP:
скопировать код в буфер обмена
  1. switch (key($_POST['step'])) {
  2. default:
  3. case 1:
  4. первая форма
  5. break;
  6. case 2:
  7. вторая форма
  8. break;
  9. ...
  10. }


-----
PostgreSQL DBA
 
 Top
OrmaJever Модератор
Отправлено: 13 Декабря, 2010 - 16:05:52
Post Id



Активный участник


Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010  
Откуда: Чернигов


Помог: 299 раз(а)




vlom нужно не так

а так


-----
Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Программирование на PHP »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB