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 :: GET запросы

 PHP.SU

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


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

> Без описания
Ricco381
Отправлено: 12 Сентября, 2014 - 01:22:03
Post Id



Новичок


Покинул форум
Сообщений всего: 54
Дата рег-ции: Июль 2014  
Откуда: Харьков


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




Привет всем.
Есть вот такая форма
PHP:
скопировать код в буфер обмена
  1. @$get = $_GET['product'];
  2. $data = array(
  3.                 'null' => 'Выберите продукцию',
  4.                 'lite' => 'Легкая',
  5.                 'mid' => 'Средняя',
  6.                 'max' => 'Тяжелая');
  7. $table = '<form action="">
  8. <select name="phenol">';
  9. foreach($data as $k=>$v){
  10.         $sel = ($k == $get) ? "selected" : "";
  11.         $table .= "<option value=".$k." ".$sel.">".$v."</option>";
  12.         }
  13. $table .= '<input type="submit" ></select></form>';


Которая открывается по GET запросу localhost/index.php?page=phenol

На этой странице есть выпадающий список в котором надо выбрать продукт, после выбора должно подружатся таблица из базы (это все я сделал)
Как сделать чтоб адресная строка меняла свой вид на:
localhost/index.php?page=phenol&produkt=lite

Я сделал вот так, перехватываю запрос, и делаю переадресацию на страницу которая мне нужна.
PHP:
скопировать код в буфер обмена
  1. if(isset($_GET['phenol'])){
  2.                 $result = $_GET['phenol'];
  3.                 header('Location: index.php?page=phenol&product='.$result);
  4.         }


И уже на этой странице через проверку вывожу результат, что-то мне подсказывает что это не совсем правильно. Как это делается по нормальному?

Полностью код страницы

PHP:
скопировать код в буфер обмена
  1.  
  2. if (isset($_GET['product']) and ($_GET['product'] != 'null')){
  3.                         switch($_GET['product']){
  4.                                         case 'lite' : $type = 'Легкая';break;
  5.                                         case 'mid' : $type = 'Средняя';break;
  6.                                         case 'max' : $type = 'Тяжелая';break;
  7.                                 }
  8.                 $phenol_result = table_phenol($_GET['product'],$type);
  9.         }
  10. function table_phenol($name,$type){
  11. include_once "./function.php";
  12. $data = phenol($name);
  13.  
  14. $table = '<table border="1">';
  15. $table .= '<tr><td colspan="5">'.$type.'</td></tr>';
  16. $table .= '<tr><td rowspan="2">Произво-сть, т/ч</td>';
  17. $table .= '<td colspan="2">Связующее, л/ч</td>';
  18. $table .= '<td colspan="2">Эмульсия, л/ч</td></tr>';
  19. $table .= '<td>Максимум</td>';
  20. $table .= '<td>Оптимально</td>';
  21. $table .= '<td>Максимум</td>';
  22. $table .= '<td>Оптимально</td>';
  23.  
  24. while($row = mysqli_fetch_assoc($data)){
  25.                 $table .= '<tr>';
  26.                 $table .= '<td>'.$row['tonnage'].'</td>';
  27.                 $table .= '<td>'.$row['max_1'].'</td>';
  28.                 $table .= '<td>'.$row['optimally_1'].'</td>';
  29.                 $table .= '<td>'.$row['max_2'].'</td>';
  30.                 $table .= '<td>'.$row['optimally_2'].'</td>';
  31.                 $table .= '</tr>';
  32.         }
  33. $table .= '</table>';
  34.  
  35. return $table;
  36. }
  37. @$get = $_GET['product'];
  38. $data = array(
  39.                 'null' => 'Выберите продукцию',
  40.                 'lite' => 'Легкая',
  41.                 'mid' => 'Средняя',
  42.                 'max' => 'Тяжелая');
  43. $table = '<form action="">
  44. <select name="phenol">';
  45. foreach($data as $k=>$v){
  46.         $sel = ($k == $get) ? "selected" : "";
  47.         $table .= "<option value=".$k." ".$sel.">".$v."</option>";
  48.         }
  49. $table .= '<input type="submit" ></select></form>';

(Отредактировано автором: 12 Сентября, 2014 - 01:24:36)

 
 Top
IllusionMH
Отправлено: 12 Сентября, 2014 - 01:29:36
Post Id



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


Покинул форум
Сообщений всего: 4254
Дата рег-ции: Февр. 2011  
Откуда: .kh.ua


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




Ricco381, если нужно, то в action формы вписывайте '/index.php?page='.$page или другие параметры.

И что с этой строкой?
PHP:
скопировать код в буфер обмена
  1. $table .= '<input type="submit" name="lite"</select></form>';
 
 Top
Ricco381
Отправлено: 12 Сентября, 2014 - 01:31:34
Post Id



Новичок


Покинул форум
Сообщений всего: 54
Дата рег-ции: Июль 2014  
Откуда: Харьков


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




IllusionMH пишет:
Ricco381, если нужно, то в action формы вписывайте '/index.php?page='.$page или другие параметры.

И что с этой строкой?
PHP:
скопировать код в буфер обмена
  1. $table .= '<input type="submit" name="lite"</select></form>';


уже подправил, не заметил.
Спасибо. Сейчас попробую как вы сказали
(Добавление)
Сделал вот так
PHP:
скопировать код в буфер обмена
  1. $table = "<form action='index.php?page='".$get."'>
  2. <select name='phenol'>";
  3. foreach($data as $k=>$v){
  4.         $sel = ($k == $get) ? "selected" : "";
  5.         $table .= "<option value=".$k." ".$sel.">".$v."</option>";
  6.         }
  7. $table .= '<input type="submit"></select></form>';


адрес меняется на http://localhost/script/www/index.php?phenol=lite
 
 Top
RickMan
Отправлено: 12 Сентября, 2014 - 10:40:36
Post Id


Участник


Покинул форум
Сообщений всего: 1033
Дата рег-ции: Май 2012  


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




Как минимум это:
PHP:
скопировать код в буфер обмена
  1. $table .= '<input type="submit"></select></form>';

надо заменить на:
PHP:
скопировать код в буфер обмена
  1. $table .= '</select><input type="submit"></form>';


В рамках select должно быть только <option></option>. Но уж точно никак не submit.
 
 Top
Ricco381
Отправлено: 12 Сентября, 2014 - 12:49:31
Post Id



Новичок


Покинул форум
Сообщений всего: 54
Дата рег-ции: Июль 2014  
Откуда: Харьков


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




RickMan пишет:
В рамках select должно быть только <option></option>. Но уж точно никак не submit.


исправил, результат не изменился.

При добавлении знака вопроса после index.php все обрезается и запрос идет на имя которое стоит в селекте и значение подставляется из валуе.
А мне нужно чтоб GET запрос дописался
например зашел я на страницу
CODE (htmlphp):
скопировать код в буфер обмена
  1. index.php?page=phenol

там есть еще один выпадающий список выбрал там что мне надо, нажал кнопку и запрос в адресной строке изменился на
CODE (htmlphp):
скопировать код в буфер обмена
  1. index.php?page=phenol&protuct=lite

как этого достичь.
Все попытки передать параметры через action не были успешными((
 
 Top
RickMan
Отправлено: 12 Сентября, 2014 - 13:36:45
Post Id


Участник


Покинул форум
Сообщений всего: 1033
Дата рег-ции: Май 2012  


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




PHP:
скопировать код в буфер обмена
  1. $table = "<form action='index.php?page='".$get."'>

замени на:
PHP:
скопировать код в буфер обмена
  1. $table = "<form action='index.php?page='".$get."&".$_SERVER['QUERY_STRING']."'>
 
 Top
Ricco381
Отправлено: 12 Сентября, 2014 - 14:22:53
Post Id



Новичок


Покинул форум
Сообщений всего: 54
Дата рег-ции: Июль 2014  
Откуда: Харьков


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




RickMan пишет:
PHP:
скопировать код в буфер обмена
  1. $table = "<form action='index.php?page='".$get."'>

замени на:
PHP:
скопировать код в буфер обмена
  1. $table = "<form action='index.php?page='".$get."&".$_SERVER['QUERY_STRING']."'>


Нулевой результат((

(Отредактировано автором: 12 Сентября, 2014 - 14:23:52)

 
 Top
Ricco381
Отправлено: 13 Сентября, 2014 - 06:18:03
Post Id



Новичок


Покинул форум
Сообщений всего: 54
Дата рег-ции: Июль 2014  
Откуда: Харьков


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




Ну кто нибудь поможет неумехе))
 
 Top
Sail
Отправлено: 15 Сентября, 2014 - 10:23:51
Post Id



Участник


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


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




Ricco381 пишет:
$table .= "<option value=".$k." ".$sel.">".$v."</option>";

Ещё бывает полезно значения атрибутов HTML-разметки в кавычки брать:
PHP:
скопировать код в буфер обмена
  1. $table .= "<option value=\"".$k."\" ".$sel.">".$v."</option>";

И приведите, пожалуйста, актуальные (получившиеся после всех правок) исходники...
 
 Top
Ricco381
Отправлено: 16 Сентября, 2014 - 22:24:20
Post Id



Новичок


Покинул форум
Сообщений всего: 54
Дата рег-ции: Июль 2014  
Откуда: Харьков


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




Зачем тут экранировать кавычку,
Или это не экранирование?
 
 Top
Sail
Отправлено: 17 Сентября, 2014 - 08:07:19
Post Id



Участник


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


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




Ricco381 пишет:
Зачем тут экранировать кавычку,
Или это не экранирование?

Экранирование.
Была-бы вся строка обрамлена апострофами, не надо было-бы экранировать.
Это-ж азбука синтаксиса строк PHP!
 
 Top
Ricco381
Отправлено: 02 Октября, 2014 - 15:44:54
Post Id



Новичок


Покинул форум
Сообщений всего: 54
Дата рег-ции: Июль 2014  
Откуда: Харьков


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




Sail пишет:
Ricco381 пишет:
Зачем тут экранировать кавычку,
Или это не экранирование?

Экранирование.
Была-бы вся строка обрамлена апострофами, не надо было-бы экранировать.
Это-ж азбука синтаксиса строк PHP!

Извини что так долго не отвечал, занят был.
Еще один вопрос, есть некий список функций которые нужно куда-то применить, какой порядок их выполнения?
Например

От середины к краю или от края к середине?

(Отредактировано автором: 02 Октября, 2014 - 15:45:54)

 
 Top
Ricco381
Отправлено: 02 Октября, 2014 - 19:01:40
Post Id



Новичок


Покинул форум
Сообщений всего: 54
Дата рег-ции: Июль 2014  
Откуда: Харьков


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




все, я вкурил)
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


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



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

 
Powered by ExBB FM 1.0 RC1. InvisionExBB