Новичок
Покинул форум
Сообщений всего: 62
Дата рег-ции: Март 2011
Откуда: Красноярск
Помог: 0 раз(а)
|
Доброго всем времени суток.
Реализую следующую ситуацию:
Есть две формы селекта.
1-ая марка
2-ая модель
(И есть одна таблица)
Действие:
Делаю первый запрос - получаю список марок в селект:
PHP:
скопировать код в буфер обмена
<? PHP // первый запрос для первого селекта (марки): $result2 = mysql_query ("SELECT DISTINCT marka FROM select_baga", $db2); ?> <select id="select-1" style="width:280px" name="slct2"> <option value="0">выбирите марку...</option> <? for ($i =1; $i < $num2; $i++) // сколько оригинальных строк, столько делаем и пунктов в селекте { $marka_auto = mysql_result ($result2,$i,0 ); //присваиваем значение (марок) переменной echo "<option value=$marka_auto>$marka_auto</option>"; // вводим в пункты селекта название марок } ?> </select> <input type="submit" name="btn" value='Ok...'> // отсылаем программе значение 1-го селекта (т.е. название марки) <?PHP $p2 = @$_POST['slct2']; //получаем $p2 (наименование марки, НО оно почему-то только до пробела! если "МАРКА-X2", то переменная нормальная, а если "МАРКА Х2", то $_POST возвращает "МАРКА". Почему так, не разобрался, но суть не в этом.) // Делаем второй запрос для второго селекта (модели): $result3 = mysql_query ("SELECT DISTINCT model, marka FROM select_baga WHERE marka LIKE '$p2%'", $db); // почему сделал $p2%? Потому-что ?> <form name="data_input_2" method="post"> <select id="select-2" style="width:280px" name="slct3"> <option value="0">Выберите модель...</option> <? for ($i2 =0; $i2 < $num3; $i2++) // сколько оригинальных строк, столько делаем и пунктов в селекте { $model_auto = mysql_result ($result3,$i2,0 ); //присваиваем значение (модели) переменной echo "<option value=$model_auto>$model_auto</option>"; // вводим в пункты селекта название моделей } ?> </select> <input type="submit" name="btn2" value='Ok...'> // отсылаем программе значение 2-го селекта (т.е. название модели) <?PHP // Это ТРЕТИЙ запрос (вывод таблицы) !!!!!!!!!! $p3 = @$_POST['slct3']; //получаем $p3 из 2-го селекта, ситуация с пробелом, такая же как и с $p2 $result4 = mysql_query ("SELECT * FROM select_baga WHERE model = '$p3'", $db); // а хотелось бы так ("SELECT * FROM select_baga WHERE model = '$p3' AND marka=$p2", $db); // ВОТ В ЭТОМ И ГЛАВНЫЙ КАМЕНЬ ПРЕТКНОВЕНИЯ! (см. после кода.) ?> <font face="Trebuchet MS" size="2"> <br><br> корректный вывод данных: <br> <table border="1" cellpadding="5" cellspacing="0" bordercolor="#999999"> <tr> <th>марка</th> <th>модель</th> <th>...и так далее...</th> <th>...и так далее...</th> </tr> <? for ($i3 =0; $i3 < $num4; $i3++) { $pole_02 = mysql_result ($result4,$i3,2 ); //...и так далее... $pole_03 = mysql_result ($result4,$i3,3 ); //...и так далее... echo " <tr align='center'> <td>$pole_00</td> <td>$pole_01</td> <td>$pole_02</td> <td>$pole_03</td> </tr>"; } ?> </table>
Дело в том, что после нажатия второго buttona значение $p2 обнуляеться, так как при вызове SUBMIT страница перегружается и php и sql делают всё повторно, как можно сохранить переменную $p2?
Или как реализовать это в моей ситуации?
Буду благодарен за помошь!
С Уважением I.CaR®(Отредактировано автором: 22 Марта, 2011 - 07:48:54)
|