WN

WN (https://www.wn.se/forum/index.php)
-   Klientsidans teknologier, design och grafik (https://www.wn.se/forum/forumdisplay.php?f=12)
-   -   Formulär - autovälja val2 i dropdown (https://www.wn.se/forum/showthread.php?t=1046563)

spajk 2011-02-16 11:45

Formulär - autovälja val2 i dropdown
 
Hej,

Försöker bygga ett formulär.

Sida 1.
Här finns det information och 4 olika klickbara länkar som länkas till sida2.

Sida 2.
Här finns ett formulär med en dropdown, denna dropdown har 40 val.

Går det att skriva i länken vilket val i dropdownen den ska automatiskt välja?
T ex länkA <a href="sida2.html#val2">LänkA</a>

Eller går det att göra på något annat smidigt sätt?

Tacksam för hjälp.

tartareandesire 2011-02-16 13:07

Du får köra js i så fall.

spajk 2011-02-16 16:25

Php kanske kan ordna det, t ex att i adressfältet ?dropdown=val2?

Behöver lite vägledning på vart jag kan hitta lösningen eller om någon vill skriva en kodsnutt?

nosnaj 2011-02-16 16:42

Citat:

Ursprungligen postat av spajk (Inlägg 20393276)
Php kanske kan ordna det, t ex att i adressfältet ?dropdown=val2?

Behöver lite vägledning på vart jag kan hitta lösningen eller om någon vill skriva en kodsnutt?


if($_GET['dropdown'] == $vardePaDinOption) {
echo '<option selected="selected" value="varde">text</option>';
} else {
echo '<option value="varde">text</option>';
}

spajk 2011-02-16 16:44

super tack!

tartareandesire 2011-02-16 18:15

Hehe, missuppfattade frågan lite grann :) Vill du verkligen ha valet i url:en? Normalt är det snyggare utan tycker jag.

Kekke 2011-02-16 19:31

Var tvungen att vänta på att mitt konto skulle aktiveras.
Detta är hur jag skulle löst det:

fil1
Kod:

<a href="form.php?prechoice=Cars">Cars in the form</a>
fil2
Kod:

<?php
        function optionSelect($strValue)
        {       
                if(isset($_GET['prechoice']) && $_GET['prechoice'] != "") {
                        $pre = $_GET['prechoice'];
                        if($strValue == $pre) {
                                echo "selected";
                        }
                }
                else {
                        echo "Prechoice not set<br />";
                }
        }
?>

<form>
        <select>
                <option <?php optionSelect("Books"); ?>>Books</option>
                <option <?php optionSelect("Cars"); ?>>Cars</option>
                <option <?php optionSelect("Movies"); ?>>Movies</option>
        </select>
</form>


KarlRoos 2011-02-16 23:54

Bara för att göra något konstruktivt innan jag går och lägger mig så skrev jag om den till en version som i alla fall jag tycker är snyggare och lättare att använda.

PHP-kod:

<?php
function select_options($options$active ''){
    
$html '';
    
    foreach(
$option as $key => $val){
        
$selected '';
        
        if(
$key == $active){
            
$selected ' selected="selected"';
        }
        
        
$html .= '<option value="' $key '"' $selected '>' $val '</key>' "\n";
    }

    return 
$html;
}
?>

PHP-kod:

<form>
<select>
<?php
echo select_options(array(
    
'Books' => 'Books',
    
'Cars' => 'Cars',
    
'Movies' => 'Movies'
), $_GET['selected_option']);
?>
</select>
</form>

Sedan är det en länk in på samma sätt.

Kekke 2011-02-17 00:18

Citat:

Ursprungligen postat av KarlRoos (Inlägg 20393346)
Bara för att göra något konstruktivt innan jag går och lägger mig så skrev jag om den till en version som i alla fall jag tycker är snyggare och lättare att använda.

PHP-kod:

<?php
function select_options($options$active ''){
    
$html '';
    
    foreach(
$option as $key => $val){
        
$selected '';
        
        if(
$key == $active){
            
$selected ' selected="selected"';
        }
        
        
$html .= '<option value="' $key '"' $selected '>' $val '</key>' "\n";
    }

    return 
$html;
}
?>

PHP-kod:

<form>
<select>
<?php
echo select_options(array(
    
'Books' => 'Books',
    
'Cars' => 'Cars',
    
'Movies' => 'Movies'
), $_GET['selected_option']);
?>
</select>
</form>

Sedan är det en länk in på samma sätt.

Smidigt!

Dock bör man använda selected istället för selected="selected".
http://www.w3.org/TR/html401/intro/s...html#h-3.3.4.2

nosnaj 2011-02-17 07:56

Citat:

Ursprungligen postat av Kekke (Inlägg 20393348)
Smidigt!

Dock bör man använda selected istället för selected="selected".
http://www.w3.org/TR/html401/intro/s...html#h-3.3.4.2


Beror vilken standard man skriver mot, forntid eller nutid ;)
Att använda den korta varianten resulterar i att det blir ogiltig XML.

Kekke 2011-02-17 10:20

Citat:

Ursprungligen postat av nosnaj (Inlägg 20393355)
Beror vilken standard man skriver mot, forntid eller nutid ;)
Att använda den korta varianten resulterar i att det blir ogiltig XML.

Ber om ursäkt om jag hade fel, det är bara vad jag lärt mig :-)

tartareandesire 2011-02-17 10:25

Citat:

Ursprungligen postat av KarlRoos (Inlägg 20393346)
Bara för att göra något konstruktivt innan jag går och lägger mig så skrev jag om den till en version som i alla fall jag tycker är snyggare och lättare att använda.

Tycker det ofta kan vara trevligare att köra valet via js efter laddning så slipper man en jämförelse per val.

nosnaj 2011-02-17 13:12

Citat:

Ursprungligen postat av tartareandesire (Inlägg 20393373)
Tycker det ofta kan vara trevligare att köra valet via js efter laddning så slipper man en jämförelse per val.

Det får du gärna utveckla, du måste ju ändå göra jämförelsen i javascriptet annars?

Fördelen att göra det server side är att även de få klagomänniskor som inte kör med js även får en fungerande sida :)

tartareandesire 2011-02-17 14:07

Citat:

Ursprungligen postat av nosnaj (Inlägg 20393395)
Det får du gärna utveckla, du måste ju ändå göra jämförelsen i javascriptet annars?

Fördelen att göra det server side är att även de få klagomänniskor som inte kör med js även får en fungerande sida :)

Näe, vet man vad som ska väljas behöver man ju inte göra någon jämförelse om sidan redan laddats.

Tror de blir allt färre då det är få större sidor idag som går att köra vettigt idag utan js :)

spajk 2011-02-17 14:44

Jag blir bara så sjukt glad när jag går in och läser, ser hur folk tävlar om vem som har bäst lösning.

Jag gillar WN och jag tackar ödmjukast för era kodsnuttar!
Tack tack tack!

nosnaj 2011-02-17 14:49

Citat:

Ursprungligen postat av tartareandesire (Inlägg 20393414)
Näe, vet man vad som ska väljas behöver man ju inte göra någon jämförelse om sidan redan laddats.

Jag skulle bra gärna vilja se den kod som sätter en option som vald utan att göra en jämförelse. Det borde vara värt ett nobelpris eller så må jag vara extremt trög :)

tartareandesire 2011-02-17 15:40

Glöm mig, borde inte ens svara när jag knappt har tid att läsa :) Tycker dock det är bättre att sätta värdet med JS i efterhand i de allra flesta fall då man sparar på servern.

entep 2011-02-17 16:19

Om jag förstår det hela rätt så tänker tartareandesire på en mer statisk lösning än den dynamiska lösningen som har presenterats ett par gånger. :)

Men i vilket fall som helst så måste man skicka med något från sida 1 till sida 2 som sida 2 triggar på, eftersom att det finns 4 olika alternativ på sida 1.

Jag kan vara ute och cykla nu, men så förstår jag de olika inläggen.

tartareandesire 2011-02-17 19:02

Citat:

Ursprungligen postat av entep (Inlägg 20393439)
Om jag förstår det hela rätt så tänker tartareandesire på en mer statisk lösning än den dynamiska lösningen som har presenterats ett par gånger. :)

Men i vilket fall som helst så måste man skicka med något från sida 1 till sida 2 som sida 2 triggar på, eftersom att det finns 4 olika alternativ på sida 1.

Jag kan vara ute och cykla nu, men så förstår jag de olika inläggen.

Varken mer eller mindre statiskt. Alla options sätts fortfarande via backend, man kör bara valet i klienten.


Alla tider är GMT +2. Klockan är nu 10:53.

Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson