За последние 24 часа нас посетил 35001 программист и 1738 роботов. Сейчас ищут 815 программистов ...

Сохранение значений $_POST

Тема в разделе "PHP для новичков", создана пользователем Tigrish, 9 июн 2009.

  1. Tigrish

    Tigrish Активный пользователь

    С нами с:
    26 июл 2008
    Сообщения:
    54
    Симпатии:
    0
    Всем привет!
    Я делаю динамический select на основе базы данных. Сам селект работает исправно, но при обработке события onchange() скрипт обнуляет все значения массива $_POST. Как можно закрепить данные массива?

    [js]function reload(form){
    var val = form.site_razdel.options[form.site_razdel.options.selectedIndex].value;
    self.location='index33.php?page=9&act=place&razdel=' + val ;
    }[/js]

    PHP:
    1. $html .= "
    2.  <form method='POST' id='publish_ban_form' name='f1' action=''  > \n
    3.     <select name='site_razdel' onchange='reload(this.form)'> \n
    4.                 <option value='0'>-- Выбрать раздел --</option>    \n";
    5.                                                    
    6. $quer2=mysql_query("SELECT razdel, title FROM tbl1 ORDER BY id") or die("query faild: ". mysql_error());
    7.                                                        
    8. if(isset($site_razdel) and strlen($site_razdel) > 0) {
    9.     $quer=mysql_query(" SELECT DISTINCT title, id
    10.                     FROM tbl2
    11.                             WHERE (razdel='$site_razdel') AND (ban_cat = $ban_cat)
    12.                     ORDER BY title") or die("query faild: ". mysql_error());
    13. }
    14. else  {
    15.     $quer=mysql_query(" SELECT DISTINCT title, id
    16.                     FROM banners_blocks
    17.                     WHERE (ban_cat = $ban_cat)
    18.                     ORDER BY title") or die("query faild: ". mysql_error());
    19. }
    20.                                                    
    21. while($noticia2 = mysql_fetch_array($quer2)) {
    22.      if ($noticia2['razdel'] == $site_razdel) {
    23.         $html .= "<option selected value='$noticia2[razdel]'>$noticia2[title]</option>"."<BR>";
    24.      }
    25.      else {
    26.         $html .= "<option value='$noticia2[razdel]'>$noticia2[title]</option>";
    27.       }
    28. }
    29.     $html .= "</select>";
    30.                                                    
    31.                                                
    32.     $html .= "<select name='block_id'><option value=''>--- Выберите блок ---</option>";
    33.                                                    
    34.            while($noticia = mysql_fetch_array($quer)) {
    35.                 $html .= "<option value='$noticia[id]'>$noticia[title]</option>";
    36.            }
    37.        
    38.     $html .= "</select>";
    39.                                            
    40.     $html .= "  <input type='hidden' name='ban_id' id='ban_id' value='".$ban_id."' >
    41.             <input type='hidden' name='mode' value='place'  >
    42.             <input type='submit' value='Submit'>
    43. </form>";
    При первой загрузке файла $_POST содержит минимум одно значение $_POST['ban_id'], которое исчезает после работы JS.
     
  2. Tigrish

    Tigrish Активный пользователь

    С нами с:
    26 июл 2008
    Сообщения:
    54
    Симпатии:
    0
    Подскажите, пожалуйста. Как сохранить эти данные в массиве?
     
  3. [vs]

    [vs] Суперстар
    Команда форума Модератор

    С нами с:
    27 сен 2007
    Сообщения:
    10.559
    Симпатии:
    632
    Все переменные скрипта существуют столько времени, сколько выполняется скрипт. После выполнения, все переменные исчезают.
    Запиши значения в сессии.
    И прочитай эту статью.