Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > JavaScript: Общие вопросы > Option Select Ajax


Автор: Nestap 5.11.2008, 21:11
помогите пожалуста!

есть код пхп :

Код

$ret = array();
    $res = sql_query("SELECT id, name FROM category ORDER BY sort ASC");
    while ($row = mysql_fetch_array($res))
        $ret[] = $row;
//echo "search";
        ?>

<form action="cat.php?cat=$row["id"]">/// redirect tut bil

    <select name="cat">
            <option value="0">Toate categoriile</option>
    <?
                        $cats = $ret;
                    foreach ($cats as $row)
                  {
                    ?>
            <option value="<?=$row["id"]?>"><?=htmlspecialchars($row["name"])?></option>";
                    <?
                    }
        
     ?>
 </select>
</form>        
<? 


как сделать чтоб при селект одно из оптион афто бил редирект на аднои странице //cat.php?cat=$row["id"]  stota vrote takova

плиз....

Автор: bars80080 5.11.2008, 21:30
Код

<select name="cat" onchange="window.location='http://server.ru/cat.php?cat=' + this.options[selectedIndex].value">

что-то типа такого

если не получится, лучше в отдельную функцию вынести

Автор: Nestap 5.11.2008, 21:42
bars80080, 

спасьба,

но как делать чтоб во врмя загруски поевилоси как на форуме:

Пожалуста подождите...

?

Автор: bars80080 6.11.2008, 00:43
как на форуме, так не получится. твой редирект - просто перезагружает страницу, а на форуме используется аякс: подгрузка части страницы, не перезагружая её целиком

Автор: Nestap 6.11.2008, 07:40
bars80080, 

ну да мне и аякс нужен!

Автор: bars80080 6.11.2008, 10:21
тогда читаем здесь http://forum.vingrad.ru/index.php?showtopic=234446&view=findpost&p=1685574

Автор: Nestap 6.11.2008, 21:33
bars80080, 
tam smotrel no stota ne ponetna!
nu pliz dle moevo problmu?

Автор: bars80080 6.11.2008, 22:49
тогда читать мануалы

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

Автор: Nestap 29.11.2008, 10:19
bars80080, 

ia ispolzovaiu :
Код

<select name="cat" onchange="window.location='http://server.ru/cat.php?cat=' + this.options[selectedIndex].value">


no posle tavo to sto vibiraiu mne  mne nujno stob ostalosi to value v Selecte a ano po omolcheanie stavitsa.....

Код



$ret = array();
    $res = sql_query("SELECT * FROM prod WHERE id_cat=$c");
    while ($row = mysql_fetch_array($res))
            $ret[] = $row;

        ?>

<select name="cat" onchange="window.location='config.php?cat='+this.options[selectedIndex].value">
            <option value="0">Select Defaul...</option>
    <?
    
                        $cats = $ret;
                    foreach ($cats as $row)
                  {
                    ?>
            <option value="<?=$row["id"]?>"><?=htmlspecialchars($row["name"])?></option>";
                    <?
                    }
        
     ?>
 </select>

<?


Автор: bars80080 29.11.2008, 17:04
ну, как ты производишь выбор пункта по-умолчанию? с помощью атрибута selected в тэге option. а где это у тебя?

надо что-то вроде такого:
Код

$ret = array();
$res = sql_query("SELECT * FROM prod WHERE id_cat=$c");
while($row = mysql_fetch_array($res)) $ret[] = $row;
?>

<select name="cat" onchange="window.location='config.php?cat='+this.options[selectedIndex].value">
<option value="0">Select Defaul...</option>

<?
$cats = $ret;
if(!empty($_GET['cat'])) $selCat = $_GET['cat']; else $selCat = '';
foreach ($cats as $row) {
    if($selCat == $row['id']) { $sel = ' selected'; } else { $sel = ''; }
    echo '<option value="'.$row['id'].'"'.$sel.'>'.htmlspecialchars($row['name']).'</option>';
}
?>

</select>
подправил код внешне, так как глаза ломаются
при таком объёме переменных, лучше хтмл занести внутрь кода

Автор: Nestap 30.11.2008, 12:18
bars80080,

большое спасиба,

ну вот ишё одно проблема!

ести несколико СЕЛЕКТ

как делати так стоб сохранялиси все селект : 

Код

config.php?cat=1&vasea=blabla&...


Автор: bars80080 30.11.2008, 14:54
в этом случае надо в каждый селект прописать onchange="rsel();"
и написать соответствующую функцию, которая будет бежать по всем селектам, считывать их значения и т.д.

Код
function rsel() {
    var sc = 'config.php?';
    var el = document.getElementsByTagName('select');
    var ell = el.length;
    for(var i = 0; i < ell; i++) {
        sc += 'cat' + i + '=' + el[i].options[el[i].selectedIndex].value + '&';
    }
    window.location = sc;
}

как-то так

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)