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

Форум MySQL

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

 

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

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

тема: двойной выпадающий список из книги
 
 автор: ronin   (22.07.2008 в 11:56)   письмо автору
 
 

Здравствуйте!
имеется двойной выпадающий список из книги Кузнецова и Симдянова MySQL 5
у меня имеется только форма:)

<?php 
  
// Устанавливаем соединение с базой данных 
  
require_once("config.php"); 

  
// Начало HTML-формы 
  
echo "<form action=handler.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 
"<select name=id_catalog onchange='show(this.form.id_catalog)'>"
    echo 
"<option value=0>Не имеет значения</option>"
    while(
$catalog mysql_fetch_array($cat)) 
    { 
$query="SELECT * FROM products where id_catalog='$catalog[id_catalog]'"
$prod mysql_query($query); 
    if(
mysql_num_rows($prod) > 0
  { 

      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>"
  } 

  
// Формируем второй выпадающий список 
  
$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]>"
        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>"
      } 
    } 
  } 
  echo 
"</br><input type=submit name=send value=Отправить>"

  
// Конец HTML-формы 
  
echo "</form>"
?> 
<script language='JavaScript1.1' type='text/javascript'> 
<!-- 
  var messageIdList = new Array(<?= implode(","$array_catalog?>); 
  function show(sel) 
  { 
    for (i = 0; i < messageIdList.length; i++) 
    { 
      document.getElementById(messageIdList[i]).style.display = "none"; 
    } 
    document.getElementById(sel.options[sel.selectedIndex].value).style.display = "block"; 
  } 
//--> 
</script> 

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

   
 
 автор: ronin   (22.07.2008 в 13:10)   письмо автору
 
   для: ronin   (22.07.2008 в 11:56)
 


echo "<pre>";
print_r($_POST);
echo "</pre>";

выдает

Array
(
    [id_catalog] => 6
    [product1] => 0
    [product2] => 0
    [product3] => 0
    [product4] => 0
    [product5] => 0
    [product6] => 12
    [product7] => 0
    [name] => имя
    [content] => содержание
    [tel] => 222-22-22
)

а как мне тут разобраться с тем [product] -который нужен?

   
 
 автор: ronin   (22.07.2008 в 18:32)   письмо автору
 
   для: ronin   (22.07.2008 в 13:10)
 


 for($i = 0; $i < 10; $i++)

  if($_POST[product.$i]>0)
 $_POST[product.$i];

$_POST[product.$i];
-
вносим в БД, у меня работает!

   
Rambler's Top100
вверх

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