Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Двойной выпадающий список
 
 автор: ronin   (28.09.2007 в 19:33)   письмо автору
 
 

Здравствуйте!
Этот скрипт взят на этом форуме
строчка "name=product$catalog[id_catalog]>" во втором селекте не передается на страницу обработчик, я подстраиваю POST, даже сессии.
name=id_catalog из первого селекта спокойно ложиться в базу, а вот второй селект, скрипт не видит, возможно тут закралась маленкая неточность???
я бьюсь уже долгое время, Ошибка немеханическа POST и т.п.
Просьба к Хеопсу помочь, я думаю для Вас это займет 1 минуту. Я уже рожаю ежиков:)


  
  $query = "SELECT * FROM catalogs
            ORDER BY name";
  $cat = mysql_query($query);
  if(!$cat) exit(mysql_error());
   if(mysql_num_rows($cat) > 0)
  {
    echo "&#208;&#243;&#225;&#240;&#232;&#234;&#224;:<br><select name=id_catalog onchange='show(this.form.id_catalog)'>";
    echo "<option value=0>choose a rubrica</option>";
    while($catalog = mysql_fetch_array($cat))
    {
      if($_POST['id_catalog'] == $catalog['id_catalog']) $selected = "selected";
      else $selected = "";
      echo "<option value=$catalog[id_catalog] $selected>$catalog[name]</option>";

            $array_catalog[] = $catalog['id_catalog'];
    }
    echo "</select></td>
<td  >&#207;&#238;&#228;&#240;&#243;&#225;&#240;&#232;&#234;&#224;:";
  }

  
  $query = "SELECT * FROM catalogs";
  $cat = mysql_query($query);
  if(!$cat) exit(mysql_error());
 
  if(mysql_num_rows($cat) > 0)
  {
    while($catalog = mysql_fetch_array($cat))
    {
            $query = "SELECT * FROM products
                WHERE id_catalog = $catalog[id_catalog]
                ORDER BY name";
      $prd = mysql_query($query);
      if(!$prd) exit(mysql_error());
            if(mysql_num_rows($prd) > 0)
      {
        echo " <select id=$catalog[id_catalog] style=\"display:none\" name=product$catalog[id_catalog]>";
        echo "<option value=0>choose a subrubrica</option>";
        while($product = mysql_fetch_array($prd))
        {
          if($_POST['id_product'] == $product['id_product']) $selected = "selected";
          else $selected = "";
          echo "<option value=$product[id_product] $selected>$product[name]</option>";
        }
        echo "</select>";
      }
    }
  }

   
 
 автор: cheops   (29.09.2007 в 21:07)   письмо автору
 
   для: ronin   (28.09.2007 в 19:33)
 

1) Каким браузером пользуетесь?
2) Приведите пожалуйста ссылку на исходную тему или структуру используемых таблиц?

   
 
 автор: ronin   (01.10.2007 в 13:00)   письмо автору
 
   для: cheops   (29.09.2007 в 21:07)
 

1) Эксплорер
2)http://www.softtime.ru/forum/read.php?id_forum=1&id_theme=38383:
http://www.softtime.ru/forum/read.php?id_forum=3&id_theme=40026;
прикрепляю скаченный с форума файл с дампом и скриптом

   
 
 автор: ronin   (16.10.2007 в 16:31)   письмо автору
 
   для: ronin   (01.10.2007 в 13:00)
 


CREATE TABLE `ogol` (
  `id_ogol` int(11) NOT NULL auto_increment,

  `id_catalog` int(11) default NULL,
  `id_product` int(11) default NULL,

  PRIMARY KEY  (`id_ogol`),

) ;
CREATE TABLE `catalogs` (
  `id_catalog` int(11) NOT NULL auto_increment,
  `name` tinytext NOT NULL,
  PRIMARY KEY  (`id_catalog`)

) ;
CREATE TABLE `products` (
  `id_product` int(11) NOT NULL auto_increment,
  `name` tinytext NOT NULL,

  `id_catalog` int(11) NOT NULL default '0',
  PRIMARY KEY  (`id_product`),

) ;

странное дело если id_catalog ложиться в базу всегда, то id_product только тогда, когда выбрано самое большое по номеру id_catalog, если их( id_catalog) 4, то id_product попадает в базу только если выбран id_catalog==4, если ==1, или ==2 и т.п то id_product пустой, если добавить новый id_catalog т.е №5 то теперь соответствено id_product будет вноситься в базу только если id_catalog выбран№5. Все остальные id_product в том числе относящиеся к id_catalog №4 уже не вводяться в базу и их не видит страница обработчик.
При этом все это происходит если второй селект обозвать name=id_product т.е name=product$catalog[id_catalog] он "не видит". Естественно страница обработчик:

$id_product = $_POST['id_product'] ; 

   
 
 автор: ronin   (18.10.2007 в 18:56)   письмо автору
 
   для: ronin   (16.10.2007 в 16:31)
 

Здравствуйте! мне нужно присвоить ник Маугли, я пошел другим путем я разбил оперецию на две страницы:

<table bgcolor=#cccccc     border=1 cellspacing=0 cellpadding=0 width=700 >
<tr> <td width=250 >
<?php
error_reporting
(E_ALL E_NOTICE);
  
  require_once(
"config.php");

    echo 
"<form name=form1  action=index2.php method=post>";

    
$query "SELECT * FROM catalogs
            ORDER BY name"
;
  
$cat mysql_query($query);
  if(!
$cat) exit(mysql_error());
    if(
mysql_num_rows($cat) > 0)
  {
    echo 
"country:<br><select name=id_catalog >";
    echo 
"<option value=0>choose a country</option>";
    while(
$catalog mysql_fetch_array($cat))
    {
      if(
$_POST['id_catalog'] == $catalog['id_catalog'])
      {
        
$selected "selected";
      }
      else 
$selected "";
      echo 
"<option value=$catalog[id_catalog] $selected>$catalog[name]</option>";

           
$array_catalog[] = $catalog['id_catalog'];
    }
    echo 
"</select></td>
"
;
  }
    
?>
  </td>
  </tr>
</tr>
 <tr>
  <td >
<input type="submit" value="&#194;&#251;&#225;&#240;&#224;&#242;&#252;"><br>

</form>
</td></tr></table>

тут выбирается первый селект и при его выборке переходим на вторую страницу:

?php
$id_catalog=((!isset($_POST["id_catalog"]))?"":$_POST["id_catalog"]);
  require_once("config.php");

    echo "<form name=form1  action=add_reg.php method=post>";
  echo "<input type=text  READONLY name=id_catalog  value=".$_POST["id_catalog"].">";

  $query = "SELECT * FROM catalogs LIMIT 1 ";
  $cat = mysql_query($query);
  if(!$cat) exit(mysql_error());
    if(mysql_num_rows($cat) > 0)
  {
    while($catalog = mysql_fetch_array($cat))
    {
            $query = "SELECT * FROM products
                WHERE id_catalog = $id_catalog
                ORDER BY name ";
      $prd = mysql_query($query);
      if(!$prd) exit(mysql_error());
            if(mysql_num_rows($prd) > 0)
      {
        echo " <select  name=id_product>";
           echo "<option value=0>choose a state</option>";
        while($product = mysql_fetch_array($prd))
        {
          if($_POST['id_product'] == $product['id_product']){ $selected = "selected";
           }
          else{ $selected = "";
                  echo "<option value=$product[id_product] $selected>$product[name]</option>";}
        }
        echo "</select>";
      }
    }
  }
  ?>
 <input type="submit" value="&#194;&#251;&#225;&#240;&#224;&#242;&#252;"><br>

</form>

и нажав тут submit все перекидывается на страницу обработчик,Тогда все пашет т.е и id_product и id_catalog - нормально ложаться в базу, как бы их объединить на одну страницу?

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования