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

Форум PHP

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

 

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

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

тема: Обработать PHP функцией вместо JS
 
 автор: Worldmen   (20.03.2007 в 23:25)   письмо автору
 
 

Есть два <SELECT>. В первом выбирается "Категория продукции" по выбору которого выбираеться список втором - "Вид товара" ("Вид товара" входит в "Категорию продукции")
Пример : в первом выбираеться - "Ванны" , нажимаю кнопку "Выбрать" - во втором появляеться список : Стальные , Акриловые, Чугунные. Нажимаю вторую кнопку "Выбрать" и перехожу в другоу файл, в который из первого передаються данные :
$_POST['fk_vid'] - это передаеться
$_POST['str_fk_vid'] - это передаеться
$_POST['str_kat'] - не передаеться
$ _POST['id_kat'] - не передаеться
Вторые две переменные я знаю почему не передаються (я нажимаю первую кнопку "Выбрать" и перегружаюсь)
Как бы их тоже передать в файл addtovar.php ?
Я хотел по onChange в s1 выполнить функцию на PHP и заполнить второй селект, но не получаеться в функцию передать даже данные ( SelectVidTov(document.formKat.s1) - эта фу-я закоментирована в коде).

<script language="JavaScript" type="text/JavaScript"> <!--
function selName(nameKat)
{
    document.formTovar.str_kat.value = nameKat.options[nameKat.selectedIndex].text
}

function SelectTov(tovar)
{    // передаем id вид товара скрытому элементу fk_vid :
    document.formTovar.str_fk_vid.value = tovar.options[tovar.selectedIndex].text; //    document.add_tov.price.value = tovar.options[tovar.selectedIndex].value;
    document.formTovar.fk_vid.value = tovar.options[tovar.selectedIndex].value;

}
//-->
</script>
 ... ...  ...

<div id="select">
    <div id="kate_tov">
        <form name="formKat"  method=post>
        Категория продукции:
          <select name="s1" size=4 style="width:200px; height:150px" onChange="selName(this)" >   <!-- SelectVidTov(document.formKat.s1)  -->
            <?
            $KatTov 
mysql_query("select id,name from produkt order by id");
            if(
$KatTov)
            {
                while (
$KatTov_ mysql_fetch_array($KatTov))
                {
                    if (!empty(
$_POST['s1']))// переменная не пустая
                    
{
                        if(
$_POST['s1']==$KatTov_['id'])
                        { echo 
"<option selected value=".$KatTov_['id'].">".$KatTov_['name'];}
                        else
                        {    
                            echo 
"<option value=".$KatTov_['id'].">".$KatTov_['name'];
                        }
                    }    
                    else
                    {echo 
"<option value=".$KatTov_['id'].">".$KatTov_['name'];}
                }
            }
            else
            {
                echo 
"<option value=0> Пусто";
            }
        
?>
          </select>
          <input type=submit name="b_Kateg" value="Выбрать">
        </form>
    </div>
  <div id="tovar">
        <form name="formTovar" method=post action="addtovar.php">
          вид товара:
          <select name="s2" size=10 style="width:200px; height:150px" onChange="SelectTov(this)">
            <? 
                $query 
"";  
                if(!empty(
$_POST['s1'])) 
                {     
//echo "<option selected> Не пустой ".$_POST['s1'];
                    
$query mysql_query(" SELECT id,fk_prod,name FROM vid_prod where fk_prod=".$_POST['s1']);
                    if (
$query)
                    {
                        while(
$q mysql_fetch_array($query))
                        {
                            echo
"<option value=".$q['id'].">".$q['name'];
                        }
                    }
                }
            
?>
          </select>
        <input type="hidden" name="str_fk_vid" value="">  <!-- будет передаваться Наименование вида продукции -->
        <input type="hidden" name="fk_vid" value="">  <!-- будет передаваться ID вида продукции      -->
        <input type="hidden" name="str_kat" value=""> <!-- будет передаваться строку вида продукции  -->
        <input type="hidden" name="id_kat" value="">  <!-- будет передаваться ID Категории продукции -->
        <input type=submit name="b_Tovar" value="Выбрать"> 
    </form>
  </div>
</div>

   
 
 автор: ZuArt   (21.03.2007 в 10:03)   письмо автору
 
   для: Worldmen   (20.03.2007 в 23:25)
 

Вам нужно после первого нажатия кнопки выбрать, когда передаются данные
$_POST['str_kat'] - не передаеться
$ _POST['id_kat'] - не передаеться

выводить страничку с кодом
<input type="hidden" name="str_kat" value="$_POST['str_kat']"> <!-- будет передаваться строку вида продукции -->
<input type="hidden" name="id_kat" value="$_POST['id_kat']"> <!-- будет передаваться ID Категории продукции -->

вместо пустых значений... скорее всего из-за того, что эти значения пустые и не проходят на след. этап выбора =)

ЗЫ. Указал схематично - сплю почти, а потому ломает сейчас код лопатить и смотреть, можно или нельзя тупо вставить <?echo $_POST['...']?> в value="...".

   
 
 автор: Worldmen   (21.03.2007 в 15:28)   письмо автору
 
   для: ZuArt   (21.03.2007 в 10:03)
 

Да, после второго нажатия эти переменные пусты.
Я так тоже пробовал <?echo $_POST['...']?> в value="...".
не получаеться.
Думаю уже разделить на разные страницы этот выбор. Но хочеться сделать на одной.

Нашел как сделать. Очерь провто. Для второй формы вставил обработчик в котором заполняются все переменные, которые мненужны в следующей странице

function SelectTov(tovar)
{    
    document.formTovar.id_kat.value = document.formKat.s1.options[document.formKat.s1.selectedIndex].value;
    document.formTovar.str_kat.value = document.formKat.s1.options[document.formKat.s1.selectedIndex].text;

    // передаем id вид товара скрытому элементу fk_vid :
    document.formTovar.str_fk_vid.value = tovar.options[tovar.selectedIndex].text; //    document.add_tov.price.value = tovar.options[tovar.selectedIndex].value;
    document.formTovar.fk_vid.value = tovar.options[tovar.selectedIndex].value;
}

   
Rambler's Top100
вверх

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