Здравствуйте. Прошу совета у специалистов по формам. Делаю сортировку товаров по параметрам. Нужно сделать так, чтобы в форме присутствовали три radio кнопки. Они служат для сортировки товаров по стоимости. Как это должно выглядеть на скрине во сложении. Я довольно слабо разбираюсь в формах, но понимаю, что нужно передать два значения - "от" и "до". Для этого создаём input type="hidden" Для одного значения код выглядит так: Код (PHP): $html .='<li>'; $html .='<input type="hidden" name="pr_from" value="0" id="price_1"/>'; $html .='<input type="hidden" name="pr_to" value="50000" id="price_1" />'; $html .='<input name="price" name="ddd" id="price_1" class="chk" type="radio" />'; $html .='<label for="price_1">0 - 50 000 руб.</label>'; $html .='</li>'; При выборе данного radio всё работает. Смотрю в firebug и вижу что значения "от" и "до" успешно переданы: Код (CODE): params[Forme][]false params[metall][]false params[naznachenie][]false params[oblitc][]false params[vysota][]false placeright pr_from 0 pr_to 50000 price on prod_type 1 Добавляем остальные поля: Код (PHP): $not_string = 'Не важно'; $html .='<li>'; $html .='<input type="hidden" name="pr_from" value="0" id="price_0"/>'; $html .='<input type="hidden" name="pr_to" value="9999999" id="price_0" />'; $html .='<input name="price" name="ddd" class="chk" type="radio" checked="checked" id="price_0" />'; $html .='<label for="price_0">'.$not_string.'</label>'; $html .='</li>'; $html .='<li>'; $html .='<input type="hidden" name="pr_from" value="0" id="price_1"/>'; $html .='<input type="hidden" name="pr_to" value="50000" id="price_1" />'; $html .='<input name="price" name="ddd" id="price_1" class="chk" type="radio" />'; $html .='<label for="price_1">0 - 50 000 руб.</label>'; $html .='</li>'; $html .='<li>'; $html .='<input type="hidden" name="pr_from" value="0" id="price_2"/>'; $html .='<input type="hidden" name="pr_to" value="100000" id="price_2" />'; $html .='<input name="price" name="ddd" id="price_2" class="chk" type="radio" />'; $html .='<label for="price_2">0 - 100 000 руб.</label>'; $html .='</li>'; И вот тут закавыка. При клике по разным кнопкам, значения не меняются. Отсматриваю в firebug и вижу что значения "от" и "до" переданы три раза: Код (CODE): params[Forme][]false params[metall][]false params[naznachenie][]false params[oblitc][]false params[vysota][]false placeright pr_from 0 pr_from 0 pr_from 0 pr_to 50000 pr_to 100000 pr_to 9999999 price on prod_type 1 Естественно, что ничего не работает. Что делаю неправильно? Как удалить предыдущие значения и передать новые? Расписывать не надо, просто, если кто знает, подтолкните в нужном направлении, пожалуйста. Искал в гугле - не нашёл ничего вменяемого...
передавай только одно значение у тебя же всё начинается с нуля, так и передавай только значания 50т.р. или 100т.р. и я вот не понял а нафига скрытые поля когда можно по переданному значению из RADIO сделать все необходимые действия, ведь в INPUT RADIO ни кто не отменял атрибут VALUE!!!!!!!
Не, это блин я в коде не указал. Значение первое конечно будет отличаться, иначе какой смысл в данной сортировке... Первый - выводит все товары Второй - от 0 до 50 000 Третий - от 50 000 до 100 000 А в value не передашь два значения.
ну тебе всё равно лучше передавать только один параметр к примеру просто выбранный RADIO, т.е. к примеру первый у тебя равен 0 передавай цифру 1 второй равен 0-50 передавай 2 третий равен 0-100 передавай 3 а уже в коде обработки отправленных параметров подставляй необходимые данные я бы именно так и сделал
Спасибо, woojin, светлая твоя голова. Прописал onclick, всё работает! Код (PHP): $not_string = 'Не важно'; $html .='<li>'; $html .='<input name="price" class="chk" type="radio" value="9999999" checked="checked" id="price_0" onClick="document.getElementById(\'pr_to\').value=this.value;document.getElementById(\'pr_from\').value=\'0\'"/>'; $html .='<label for="price_0">'.$not_string.'</label>'; $html .='</li>'; $html .='<li>'; $html .='<input name="price" value="50000" id="price_1" class="chk" type="radio" onClick="document.getElementById(\'pr_to\').value=this.value;document.getElementById(\'pr_from\').value=\'0\'" />'; $html .='<label for="price_1">0 - 50 000 руб.</label>'; $html .='</li>'; $html .='<li>'; $html .='<input type="hidden" name="pr_from" value="" id="pr_from"/>'; $html .='<input type="hidden" name="pr_to" value="" id="pr_to" />'; $html .='<input name="price" value="100000" id="price_1" class="chk" type="radio" onClick="document.getElementById(\'pr_to\').value=this.value;document.getElementById(\'pr_from\').value=\'50000\'" />'; $html .='<label for="price_1">50 000 - 100 000 руб.</label>'; $html .='</li>';