[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: атрибут selected
Гость_Иван
Здрасте, а вот допустим у меня после цикла получается вот примерно такой код.

<select name = 'test' OnChange="top.location.href = this.options[this.selectedIndex].value;">
<
option value='index.php?id=1'>1</option>
<
option value='index.php?id=2'>2</option>
<
option value='index.php?id=3'>3</option>
<
option value='index.php?id=4'>4</option>
<
select>

в общем при выборе значения из списка и перехода на требуемую страницу, хотелось бы, чтобы выбранное значение получало атрибут selected, т.е. было выбрано в новой странице.



Спустя 4 минуты, 6 секунд (22.08.2011 - 16:14) T1grOK написал(а):

<option value='index.php?id=1' <?php if($_POST['test']=1) echo selected?>>1</option>

В общем идея такая.

Спустя 1 минута, 32 секунды (22.08.2011 - 16:15) inpost написал(а):
ну проверяй значение.
<?php if($_POST['test'] == 'index.php?id=1') echo 'selected'; ?> - это для первого option, и так далее.
Хотя неправильно передавать эту строчку: index.php?id=1 , достаточно просто цифру 1. А нужные операции внутри скрипта.

Спустя 8 минут, 30 секунд (22.08.2011 - 16:24) Гость_Иван написал(а):
ну вот так я и писал, видимо не туда прелепил, щас проверим, спасибо )

Спустя 1 минута, 48 секунд (22.08.2011 - 16:26) Diss написал(а):
мб тогда уж
<?php if((int)$_GET['id']==1) echo selected?>

?)

Спустя 1 минута, 11 секунд (22.08.2011 - 16:27) Гость_Иван написал(а):
ну там уже можно разобраться что проверять wink.gif

Спустя 2 минуты, 9 секунд (22.08.2011 - 16:29) Гость_Иван написал(а):
Цитата (inpost @ 22.08.2011 - 13:15)
ну проверяй значение.
<?php if($_POST['test'] == 'index.php?id=1') echo 'selected'; ?> - это для первого option, и так далее.
Хотя неправильно передавать эту строчку: index.php?id=1 , достаточно просто цифру 1. А нужные операции внутри скрипта.

И кстати $_POST[test] вернет же только цифру, а не всю строку значения value

Спустя 6 минут, 15 секунд (22.08.2011 - 16:35) inpost написал(а):
Diss
Форма может отправлять данные POST, я в 95% случаев использую именно POST, только для поиска - GET.

Спустя 58 секунд (22.08.2011 - 16:36) inpost написал(а):
Гость_Иван
А ты изучи сначала свой движок. Он передаёт именно то, как я показал, либо POST, либо GET, в зависимости от method формы. А вот что скрипт там внутри делает, может быть даже редирект.

Спустя 8 минут, 44 секунды (22.08.2011 - 16:45) Diss написал(а):
если честно код какой-то мутный и редирект сделан через это самое место...
если уж начали писать js, то продолжайте им и писать, в нем же делайте редирект и в нем же проверяйте и в нем же добавляете атребут селектед
так будет по человечески...

Цитата
OnChange="top.location.href = this.options[this.selectedIndex].value;
такая запись давно уже не модна.

да я понял уже что ошибся, там ведь в гет можно что угодно написать

я не тестил... но такой вопрос, я так понимаю это OnChange="top.location.href = this.options[this.selectedIndex].value; - редирект при смене атребута
А будет ли в таком случае отправляться форма и меняться пост параметр? или это тупо редирект и никакой пост формы нет и в помине?

Вощем в любом случае по хорошему писать надо через js

Спустя 1 минута, 23 секунды (22.08.2011 - 16:46) inpost написал(а):
Diss
Что в твоём понимании f5 ? Пост отправляет данные, данные обрабатываются в скрипте-обработчике(который получил POST!!!), потом внутри делается редирект уже на нужную страницу, на которой f5 не приносит никакого вреда.

Спустя 3 минуты, 3 секунды (22.08.2011 - 16:49) Diss написал(а):
я подредактировал сообщение... предыдущее... там как я понимаю при селекте идет редерет, а будет ли при нем отправка пост формы?

Спустя 1 минута, 30 секунд (22.08.2011 - 16:51) Гость_Иван написал(а):
Ну приведи мне пример "модной" js записи, может заодно и дальше мысль закончишь с selected ))

Спустя 2 минуты, 57 секунд (22.08.2011 - 16:54) Гость_Иван написал(а):
POST форма есть, но тут она не при чем, смысл в том чтобы после редиректа оставался выбранным пункт option на который мы нажали

Спустя 6 минут, 40 секунд (22.08.2011 - 17:00) Diss написал(а):
надо подумать и потестить
но в целом как-то так

$(document).ready(function()
{
switch (document.location.href)
{
case '..index.php?id=1':
$(this).attr('selected':'selected')
break;
//---- тут остальные значения----
})
$(:select).change(functuion ({
document.location.href = $(this).attr('href').val();
});
});


(писал на коленке, поэтому ногами за ошибки не пинать)

Цитата
POST форма есть, но тут она не при чем
ну как бы и я о том же, что при таком редиректе пост форма отправляться не будет, а значит значение
$_POST['test'] не определено (скорее всего, я не тестил извините)


так ошибся =( щас исправлю код

вроде подправил... а то совсем не то написал изначально

Спустя 13 минут (22.08.2011 - 17:13) inpost написал(а):
Гость_Иван
На основной вопрос ответ ты уже получил...

Спустя 45 минут, 53 секунды (22.08.2011 - 17:59) Diss написал(а):
вощем код будет такой.
$(document).ready(function()
{
var href = document.location.href;
switch(href)
{
case 'http://localhost/index.php?id=1':
$('#x1').attr("selected", "selected");
break;
case 'http://localhost/index.php?id=2':
$('#x2').attr("selected", "selected");
break;
case 'http://localhost/index.php?id=3':
$('#x3').attr("selected", "selected");
break;
case 'http://localhost/index.php?id=4':
$('#x4').attr("selected", "selected");
break;
default:
$('#x1').attr("selected", "selected");
break;
};
$('#sel').change(function (){
document.location.href = $(this).attr('value');
});
});

правда option'ам я дал еще айди x1 x2 x3 x4 соотвественно, можно и без них, но сейчас уже лень переделывать, если хочешь, устрой выборку по другому критерию.
и селекту id sel
(долго тупил с тем, что написал селекту id = sel а в js написал $('#sell') и сидел не мог понять, почему же не работает :D :D

Спустя 18 минут, 53 секунды (22.08.2011 - 18:18) inpost написал(а):
Diss
Плохой,увы, код. А если у тебя будет 100 опшионов, тебе прийдется 100 раз дублировать? Это неправильно.

Спустя 5 минут, 32 секунды (22.08.2011 - 18:24) Diss написал(а):
ну для 4 так норм, я просто тестил с ifом из него до кейса удобней было размножить, чем до цикла

ну а по хорошему да, выборку надо ставить по значению атрибута
плюс в цикле определять url

щас ради интереса надо будет сделать...

Спустя 3 минуты, 1 секунда (22.08.2011 - 18:27) inpost написал(а):
Diss
Тебе лишь надо получить идентификатор ID через регулярку, и 1 действие сделать. Без всяких свичей, код на 3 строчки.

Спустя 3 минуты, 59 секунд (22.08.2011 - 18:31) Diss написал(а):
наверное как-то вот так

var href = document.location.href;
var value = 'http://localhost/index.php?id=';
var id = href.substring(value.length);
$(('#x'+id)).attr("selected", "selected");


или не верно?

Спустя 33 минуты, 38 секунд (22.08.2011 - 19:04) Diss написал(а):
по идее, это значение id надо получать ajax запросом, потому что кто его знает, что еще надо будет напихать в адресную строку

хотя может ошибаюсь...

Спустя 4 минуты, 29 секунд (22.08.2011 - 19:09) inpost написал(а):
Diss
А если запись такого вида? id=7&val=12 ?

Спустя 6 минут, 2 секунды (22.08.2011 - 19:15) Diss написал(а):

А если запись такого вида? id=7&val=12 ?
подскажите решение? мне в голову приходит только ajax запрос.

Спустя 1 час, 9 минут, 52 секунды (22.08.2011 - 20:25) inpost написал(а):
Это решение делается на php, в первом сообщении я показал, как правильно smile.gif
Если уж так сильно на JS хочется, то тут надо разбивать по символу & и = на массив, оттуда доставать только $_GET['id'];

Спустя 8 минут, 13 секунд (22.08.2011 - 20:33) Гость_Иван написал(а):
так а вроде разговор был, что POST не имеет отношения к этой части кода. Поэтому $_POST['test'] проверяй - не проверяй, а толку не будет.

Спустя 15 минут, 48 секунд (22.08.2011 - 20:49) Diss написал(а):
Цитата
Это решение делается на php, в первом сообщении я показал, как правильно smile.gif

оно не будет считывать пост параметр
при редиректе который там сделан нет возможности считывать пост параметр

если уж писать на пхп тогда уж считывать гет параметр, и как писал я...
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.