|
|
|
|
|
для: Andrey_V
(07.01.2006 в 21:31)
| | Поставил кнопочку. Но там опять какие-то заморочки. Попробовал всяко-разноэ И получился приемлимый вариант таким:
в первом select оставил
onchange='this.form.submit()'
| / во стором и третьем - убрал. Стало все срабатывать нормально. Конечно есть небольшое неудобство: страница обновляется при выборе только в первом select/ Зато все остальное работает нормально. Т.е. первый select - выбор раздела товаров и услуг, второй и третий - представление(кратко-полно) и сортировка. Так теперь при изменении представления и сортировки никаких действий не производится, но когда изменяем раздел товаров и услуг - все изменяется, а правильный выбор в select(ах) остается.
Конечно, хотелось бы, чтобы обновление происходило при всех выборах, но это все-таки решение на 90 процентов.
Если вдруг мелькнут какие-то мысли по решению такой проблемы - сообщите, пожалуйста!
Большое спасибо за очень ценные и очень конкретные советы!!! | |
|
|
|
|
|
|
|
для: cheops
(07.01.2006 в 20:24)
| | Первую часть по удалению сделал своими руками.
А как добавить обычную кнопку? | |
|
|
|
|
|
|
|
для: Andrey_V
(07.01.2006 в 15:13)
| | Уберите событие onchange='this.form.submit()' во всех <select> и поставьте в HTML-форме обычную кнопку. | |
|
|
|
|
|
|
|
для: cheops
(07.01.2006 в 13:37)
| | Поменял (выделено жирным).
Результат. Когда меняем что-то в одном списке в другом ничего не меняется.
Но!
Если переходим в другой список, то предыдущий сразу сбрасывается в ноль (переходит на значение по умолчанию)
Вывел внизу два эха, чтобы нагляднее было видно. Может быть попробуете у себя? А то у меня скоро мозги расплавятся
===================================
<?php
$arr_2[1] = "Краткий";
$arr_2[2] = "Страницы";
echo "<form name=first method=post>";
if(count($arr_2) > 0)
{
echo "<select name=id_catalog_2 onchange='this.form.submit()'>";
echo "<option value=0>Таблица</option>";
foreach($arr_2 as $index => $value)
{
if($index == $_POST['id_catalog_2']) $selected = "selected";
else $selected = "";
echo "<option value=$index $selected>$value</option>";
}
echo "</select>";
}
echo "</form>";
// Если ничего не выбрано - выбираем значение по умолчанию
if(empty($_POST['id_catalog_2'])) $_POST['id_catalog_2'] = 0;
//-----------------------------------------------------
//Задание порядка сортировки
$arr_3[1] = "Производитель";
$arr_3[2] = "Цена";
echo "<form name=second method=post>";
if(count($arr_3) > 0)
{
echo "<select name=id_catalog_3 onchange='this.form.submit()'>";
echo "<option value=0>Наименование</option>";
foreach($arr_3 as $index => $value)
{
if($index == $_POST['id_catalog_3']) $selected = "selected";
else $selected = "";
echo "<option value=$index $selected>$value</option>";
}
echo "</select>";
}
echo "</form>";
// Если ничего не выбрано - выбираем значение по умолчанию
if(empty($_POST['id_catalog_3'])) $_POST['id_catalog_3'] = 0;
echo "Первый: ".$_POST['id_catalog_2'];
echo "Второй: ".$_POST['id_catalog_3'];
?>
============= | |
|
|
|
|
|
|
|
для: Andrey_V
(07.01.2006 в 12:12)
| | Атрибут name у каждого из select должен быть уникальным - иначе как вы их друг от друга отличите... | |
|
|
|
|
|
|
|
для: Futurer
(07.01.2006 в 02:18)
| | Да. Переменные-то одинаковые.
Пробую поменять имена, но что-то не помогает. Покажите, пожалуйста, какие переменные надо поменять. Во первом блоке - добавлением к имени переменной _2, а во втором блоке _3
==================================================================
<?php
$arr_2[1] = "Краткий";
$arr_2[2] = "Страницы";
echo "<form name=form method=post>";
if(count($arr_2) > 0)
{
echo "<select name=id_catalog onchange='this.form.submit()'>";
echo "<option value=0>Таблица</option>";
foreach($arr_2 as $index => $value)
{
if($index == $_POST['id_catalog']) $selected = "selected";
else $selected = "";
echo "<option value=$index $selected>$value</option>";
}
echo "</select>";
}
echo "</form>";
// Если ничего не выбрано - выбираем значение по умолчанию
if(empty($_POST['id_catalog'])) $_POST['id_catalog'] = 0;
//-----------------------------------------------------
//Задание порядка сортировки
$arr_3[1] = "Производитель";
$arr_3[2] = "Цена";
echo "<form name=form method=post>";
if(count($arr_3) > 0)
{
echo "<select name=id_catalog onchange='this.form.submit()'>";
echo "<option value=0>Наименование</option>";
foreach($arr_3 as $index => $value)
{
if($index == $_POST['id_catalog']) $selected = "selected";
else $selected = "";
echo "<option value=$index $selected>$value</option>";
}
echo "</select>";
}
echo "</form>";
// Если ничего не выбрано - выбираем значение по умолчанию
if(empty($_POST['id_catalog'])) $_POST['id_catalog'] = 0;
?>
================================================================== | |
|
|
|
|
|
|
|
для: cheops
(06.01.2006 в 21:11)
| | Да там скорее всего перепутались одинаковые переменные php и всего-то. Надо проверить. | |
|
|
|
|
|
|
|
для: Andrey_V
(06.01.2006 в 19:23)
| | Прикрепите к посту то, что у вас получилось - если списки влияют друг на друга - это не нормально... | |
|
|
|
|
|
|
|
для: Andrey_V
(06.01.2006 в 17:32)
| | Не должно так быть. | |
|
|
|
|
|
|
|
для: Andrey_V
(06.01.2006 в 17:39)
| | Списки как надо расположил.
Остался только вопрос, как сделать, чтобы три поля со списком не влияли друг на друга | |
|
|
|
|