Autor Zpráva
Divally
Profil *
Ahoj všem,

jsem začátečník v JS a pořád se mi nedaří rozpohybovat jednoduchý script, tak Vás chci požádat o pomoc.

Mám například jednoduchý kód:

<form name="form"> 
	<p>Vyber stránku</p> 
	<input type="radio" name="www" value="youtube" onclick="vyber(this.value);">Youtube<br> 
	<input type="radio" name="www" value="wiki" onclick="vyber(this.value);">Wikipedia<br> 
	<input type="radio" name="www" value="seznam" onclick="vyber(this.value);">Seznam<br> 
	<input type="radio" name="www" value="apple" onclick="vyber(this.value);">Apple<br> 
        <input type="button" value="Hledej" onclick="otevri()"> 
</form> 

<script type="text/javascript">
function vyber(zvolena){
	stranka = zvolena;
	}
	
	var youtube = www.youtube.com
	var wiki = www.wikipedia.org
	var seznam = www.seznam.cz
	var apple = www.apple.com
	
	function otevri(){		
	window.open("http://"+stranka, "_blank");
	}
	
</script>


A cílem je např. při zatrhnutí radia Youtube, aby se otevřela stránka youtube.com.
Vím že by to fungovalo kdyby např. "www.youtube.com" bylo ve "value" a pote uz tam nemusi byt "var youtube = www.youtube.com".
Ale vzhledem k tomu že těhle radií je ve skutečnosti mnooohem víc, tak bych chtěl aby ty konkretní adresy byly uložený někde v proměnných a kdykoli se se zavola fce otevri() tak by si adresu prevzala z promenny.

Nejspíš je to pro většinu z Vás triviální.
Díky za každou pomoc.
Chamurappi
Profil
Reaguji na Divallyho:
jsem začátečník v JS
Spíš obecně v programování. Zajímavé je, že v běžném textu dáváš řetězce do uvozovek, aby čtenář pochopil, že jde o speciální frázi, ale interpreterům JavaScriptu stejný komfort nedopřeješ. Jak by měl poznat prohlížeč, že www.youtube.com je řetězec a ne proměnná?
LosFilipos
Profil
Takhle to bude fungovat:
<script type="text/javascript">
var stranka;
function vyber(zvolena){
    stranka = zvolena;
    }


    var adresa;
    function otevri(){
    
    
    switch (stranka) {
        case 'youtube':
        adresa = 'www.youtube.com';
        break;
        
        case 'wiki':
        adresa = 'www.wikipedia.org';
        break;
    
        case 'seznam':
        adresa  = 'www.seznam.cz'
        break;
        
        case 'apple':
        adresa  = 'www.apple.com';
        break;    
        
        default:
        adresa  = false;
    }
    
    if(adresa) {
    nove_okno = window.open('http://' + adresa,'_blank');
    } else {
     return false;
    }
}
    
</script>
Joker
Profil
Divally:
Tak v první řadě, řetězce se uzavírají do uvozovek.
Dále, takhle to nebude fungovat, respektive mi nějak uniká myšlenka, jak by to mělo fungovat.

edit: Tak hned dva lidi byli rychlejší.
Divally
Profil *
Chamurappi a Joker:

Vím že se používají uvozovky.
Chtěl jsem napsat jen krátký kus kódu který by ilustroval tu věc které chci docílit, ale při psaní mi ty uvozovky nějak vypadly :)
Moje chyba omlouvám se.
Každopádně ani s nima by to nefungovalo.
Nevim jak docílit toho aby když zatrhnu youtube a kliknu na tlacitko, tak aby treba fce otevri() poznala jaky radio jsem zakrtl a podle toho doplnila do window.open() tu cast s adresou.
A nechtel jsem psat ty adresy ke kazdymu radiu do value.


LosFilipos:

Děkuju za jednoduchou funkční odpověď :)

Vaše odpověď

Mohlo by se hodit

Neumíte-li správně určit příčinu chyby, vkládejte odkazy na živé ukázky.
Užíváte-li nějakou cizí knihovnu, ukažte odpovídajícím, kde jste ji vzali.

Užitečné odkazy:

Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0