PHP.SU

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

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

> Найдено сообщений: 6
foboss26 Отправлено: 12 Июня, 2007 - 16:24:24 • Тема: Как протащить переменные через несколько страниц??? • Форум: Программирование на PHP

Ответов: 11
Просмотров: 699
evgenijj пишет:
Цитата:
Стало работать, только если меняешь запрос поиска, сессия отдает данные полученные ранее, и возвращаются предидущие результаты ((

Не надо все так понимать буквально ($_SESSION["search"] = $_POST) -- неплохо и свою голову подключать

<input type="submit" name = "search" value="Подобрать">

if ( isset( $_POST["search"] ) ) $_SESSION["search"] = $_POST;


Спасибо!!!!!!Радость Все получилось, даже лучше чем хотел изначально Радость Все познаётся в учении, а я только учусь.
foboss26 Отправлено: 12 Июня, 2007 - 15:50:18 • Тема: Как протащить переменные через несколько страниц??? • Форум: Программирование на PHP

Ответов: 11
Просмотров: 699
evgenijj пишет:
Просто $_SESSION["P1"] = $_POST["P1"]
PHP:
скопировать код в буфер обмена
  1.  
  2. <?PHP
  3. $arr1 = array( 1 => "first", 2 => "second" );
  4. $arr2 = $arr1;
  5. foreach( $arr2 as $k => $v ) echo $k."->".$v."<br/>";
  6. ?>
  7.  

Результат:
1->first
2->second

Тебе можно сделать очень просто
$_SESSION["search"] = $_POST;
и в дальнейшем вместо $_POST["var"] обращаться к $_SESSION["search"]["var"]


Благодарю, за ценные советы ))
Стало работать, только если меняешь запрос поиска, сессия отдает данные полученные ранее, и возвращаются предидущие результаты ((
foboss26 Отправлено: 12 Июня, 2007 - 14:43:30 • Тема: Как протащить переменные через несколько страниц??? • Форум: Программирование на PHP

Ответов: 11
Просмотров: 699
evgenijj пишет:
foboss26 пишет:
Цитата:

Каким образом данные из формы у тебя будут доступны на 2-ой странице?

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

Да, но когда пользователь переходит на вторую страницу результатов поиска, он не нажимает кнопку "Искать" (т.е. не отправляет данные формы). Он просто щелкает по ссылке
<a href="search.php?page=2">2</a>
Так откуда ты будешь брать переменные формы ($_POST["prdo"], $_POST["prot"]) чтобы сформироать запрос к БД?


Тогда попробую на сессии сделать, только подскажите как затолкать массив переменных $_POST['P1'] в сессию, в форме это выглядит так name="P1['.$vendor['vendor'].']"
foboss26 Отправлено: 12 Июня, 2007 - 13:49:30 • Тема: Как протащить переменные через несколько страниц??? • Форум: Программирование на PHP

Ответов: 11
Просмотров: 699
Цитата:

Каким образом данные из формы у тебя будут доступны на 2-ой странице?

они остануться в форме, в полях где их ввели. И будут там на протяжении всей выдачи результата поиска.
foboss26 Отправлено: 12 Июня, 2007 - 13:05:51 • Тема: Как протащить переменные через несколько страниц??? • Форум: Программирование на PHP

Ответов: 11
Просмотров: 699
evgenijj пишет:
http://www.php.su/articles/?cat=examples&page=062

А можно по этому примеру чуть подробнее?
дополняю, к форме:
CODE (text):
скопировать код в буфер обмена
  1.  
  2. if (isset($_POST['P1'])) {
  3.         reset($_POST['P1']);
  4.         $vendors = "";
  5.         $i = 0;
  6.     while (list($key, $val) = each($_POST['P1'])) {
  7.         if ($i == "0") {
  8.  
  9.         }else{
  10.                 $vendors .= "=";
  11.         }
  12.         if ($val == "ON") {
  13.             $vendors .= $key;
  14.                 //print $key."<br>";
  15.         }
  16.         $i++;
  17.     }
  18. }
  19.  
  20.     //print $vendors;
  21.     if (!empty($vendors)) {
  22.         $vendor_search = explode("=",$vendors);
  23.         $venelem=count($vendor_search);
  24.     }
  25.  
  26.     if (!empty($prot) && !empty($prdo)) {
  27.     $price = "AND `price` >= '".$prot."' AND `price` <= '".$prdo."'";
  28.     }elseif (!empty($prot) && empty($prdo)) {
  29.     $price = "AND `price` >= '".$prot."'";
  30.     }elseif (empty($prot) && !empty($prdo)) {
  31.     $price = "AND `price` <= '".$prdo."'";
  32.     }else{
  33.     $price = "";
  34.     }
  35.     //print $venelem;
  36.     if (!empty($vendors)) {
  37.  
  38.          $zapros = "";
  39.          for ($j=0;$j<$venelem;) {
  40.                 if ($j == "0") {
  41.  
  42.                 }else{
  43.                         $zapros .= " OR ";
  44.                 }
  45.                  $zapros .= "`vendor` = '".$vendor_search[$j]."' ".$price." AND `cat_cat` = '".$cat."' AND `status` = '0'";
  46.  
  47.                  $j++;
  48.          }
  49.     }else{
  50.  
  51.                  $zapros .= "`cat_cat` = '".$cat."' ".$price." AND `status` = '0'";
  52.  
  53.  
  54.     }
  55.  
  56.  
  57.  
  58.  
  59.  
  60.     $querycount = "SELECT COUNT(*) as cnt FROM `price` WHERE ".$zapros." ";
  61.     $querycountz = mysql_query($querycount);
  62.     $count = mysql_result($querycountz, 0, 0);
  63.     //print $querycount;
  64.     print "<br>По запросу найдено: ".$yacount." товаров";
  65. if ($count > 0) {
  66. $res_price = mysql_query("SELECT * FROM `price` WHERE ".$zapros." LIMIT ".($lines_per_page * ($yap - 1)).", ".$lines_per_page);
  67. while ($row_price = mysql_fetch_assoc($res_price));
  68.  

А запрос все равно пропадает. ((
foboss26 Отправлено: 12 Июня, 2007 - 11:50:27 • Тема: Как протащить переменные через несколько страниц??? • Форум: Программирование на PHP

Ответов: 11
Просмотров: 699
Привет, есть проблема!
Делаю поисковую форму, но не знаю как протащить данные на несколько страниц, сама форма выглядит так:
CODE (text):
скопировать код в буфер обмена
  1.  
  2. print "<form name='podborka' action = 'podborka.php?cat=".$cat."&p' method='post'>";
  3. print '<input name="cat" type="hidden" value="'.$cat.'">';
  4. print '<div class="s2">Цена</div>  от: <input class="form_price" name="prot" type="text" value="'.$prot.'">  ';
  5. print 'до: <input class="form_price" name="prdo" type="text" value="'.$prdo.'"> руб.<br>';
  6. print '<div class="s2">Производители:</div>';
  7. print '<input name="podbor" type="hidden" value="">';
  8. print '<input type="checkbox" name="a" value="a" onclick="checkAll(document.podborka.vend)"> Все производители<br>';
  9. $i=1;
  10. while ($vendor = mysql_fetch_assoc($res_price)) {
  11. if ($vendor['vendor'] <> "") {
  12. print '<input id = "vend" name="P1['.$vendor['vendor'].']" type="checkbox" value="ON"';
  13. if ($P1[$vendor['vendor']] == "ON") {print "checked"; }
  14. print '> '.$vendor['vendor'].'<br>';
  15. }
  16. $i++;
  17. }
  18. print '<br><input type="submit" class = "formsubsearch" value="Подобрать">';
  19. print "</form>";
  20.  


Данные из формы передаются, обрабатываются и формируют запрос к БД, но если результат разбивается на несколько страниц, скажем на 2-3, то при переходе на 2 или 3 страницы ничего не выводится, запрос тереяется.
Подскажите как можно сохранить запрос при POST методе с многостраничным выводом?
Метод GET не подходит, запросы бывают настолько емкими, что просто не могут разместиться в строке URL
Очень надеюсь, на помощь !

Страниц (1): [1]
Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB