Autor | Zpráva | ||
---|---|---|---|
davecz Profil |
#1 · Zasláno: 23. 2. 2009, 19:41:29
Dobrý den, potřeboval bych poradit, jak náhodně vygenerovat stránku která se nachází s ostatníma ve stejné složce.
Takže se v menu po kliknutí na odkaz Písničky vybere jedna ze stránek watanay.html, buraky.html, stanky.html... Díky moc |
||
xerno Profil |
#2 · Zasláno: 23. 2. 2009, 19:53:52 · Upravil/a: xerno
Když javascriptem, tak bych to řešil takto (v phpku by to bylo obdobný, akorát použil bys funkci mt_rand): (předpokládejme, že těch souborů je ve složce 10)
<script type=text/javascript> var nahoda = Math.round(Math.random()*3) if (nahoda == 1) var finito = "watanay"; if (nahoda == 2) var finito = "buraky"; ... if (nahoda == 10) var finito = "stanky"; document.write("<a href=" + finito + ".html>Písničky</a>"); </script> |
||
Joker Profil |
#3 · Zasláno: 23. 2. 2009, 19:54:08
davecz
Uložit si stránky do pole, potom vybrat náhodné číslo od 0 do (počet prvků pole - 1) a na adresu s tím indexem přejít. |
||
Joker Profil |
#4 · Zasláno: 23. 2. 2009, 19:54:49
xerno
if (nahoda == 1) var finito = "watanay"; if (nahoda == 2) var finito = "buraky"; ... if (nahoda == 10) var finito = "stanky"; No fuj :-) |
||
xerno Profil |
#5 · Zasláno: 23. 2. 2009, 20:05:02
Joker
nejjednoduší řešení a nejlepší začátek pro ty co neznaj javascript, proč myslíš že sem tam dal „<script type=text/javascript>“ ?? XD to cos mu poradil ty mu asi moc nepomohlo... |
||
habendorf Profil |
#6 · Zasláno: 23. 2. 2009, 20:06:18
xerno
Bezva řešení třeba pro 2000 stránek ;o) |
||
davecz Profil |
#7 · Zasláno: 23. 2. 2009, 20:10:21
díky moc
|
||
xerno Profil |
#8 · Zasláno: 23. 2. 2009, 20:17:36
habendorf
Myslim že on jich tolik nemá... a kdyby jo, tak ať si to radši udělá přes databázi, ne? :) a kdo říkal že je to řešení bezva? já už radil, tak mu poraď i ty ;) |
||
habendorf Profil |
#9 · Zasláno: 23. 2. 2009, 20:20:00
xerno
OK :o) „tak mu poraď i ty ;)“ Dělal bych to stejně jako Joker. |
||
xerno Profil |
#10 · Zasláno: 23. 2. 2009, 20:22:19
„to cos mu poradil ty mu asi moc nepomohlo...“ :) XD kdybys neuměl javascript, tak ti Jokerovo řešení moc nepomůže... vypiš to daveczvi a třeba tahle diskuze nebude jen plkání :)
|
||
davecz Profil |
#11 · Zasláno: 23. 2. 2009, 20:23:06
habendorf
a přes pole by to bylo jak? |
||
habendorf Profil |
#12 · Zasláno: 23. 2. 2009, 20:35:22 · Upravil/a: habendorf
<script> var songs= new Array("watanay","byraky","stanky"); index = Math.floor(Math.random()*songs.length); </script> <a href="" id="link">Písničky</a> <script> document.getElementById('link').href=songs[index] + ".html"; </script> Nějak takhle, píšu to z hlavy, netestuju. |
||
davecz Profil |
#13 · Zasláno: 23. 2. 2009, 20:50:50
ještě bych měl jeden hloupej dotaz...jaktože se mně jednou za x pokusů stane že to tu stránku nemůže nalézt?
|
||
xerno Profil |
#14 · Zasláno: 23. 2. 2009, 21:06:51
davecz
to může mít víc příčin... cos nakonec dal do toho scriptu? |
||
davecz Profil |
#15 · Zasláno: 23. 2. 2009, 21:07:23
<script>
var songs= new Array("watanay","byraky","stanky"); index = Math.floor(Math.random()*songs.length); </script> <a href="" id="link">Písničky</a> <script> document.getElementById('link').href=songs[index] + ".html"; </script> |
||
habendorf Profil |
#16 · Zasláno: 24. 2. 2009, 09:54:16
Protože tam mám překlep byraky -> buraky. To sis mohl najít sám :o)
|
||
davecz Profil |
#17 · Zasláno: 24. 2. 2009, 09:57:57 · Upravil/a: davecz
:) to jsem našel, ale i tak mně to háže chyby. A to u obou skriptů-jak u toho s proměnnou "finito", tak s tímhle
|
||
habendorf Profil |
#18 · Zasláno: 24. 2. 2009, 10:01:14 · Upravil/a: habendorf
davecz
Není možná, chyba musí být mimo ten skript. Někam to celé nahraj a dej sem link na živou stránku, jinak se nehnem. EDIT na tvůj EDIT: tím spíš je chyba jinde. |
||
davecz Profil |
#19 · Zasláno: 24. 2. 2009, 10:15:28 · Upravil/a: davecz
Dík už to funguje. Zkusil jsem to na druhým počítači a jede to normálně. Tak promiň za ztrátu času:)
EDIT: nene přípony jsou v pořádku. Tohle se mně ještě nestalo... |
||
habendorf Profil |
#20 · Zasláno: 24. 2. 2009, 10:15:39 · Upravil/a: habendorf
Jen střelím od boku - mají všechny stránky skutečně koncovku html? Nemá některá třeba jen htm? Jsou všechny názvy stránek skutečně malými písmeny?
EDIT: Tak nic, fajn. |
||
davecz Profil |
#21 · Zasláno: 26. 2. 2009, 15:12:21
šlo by nějak zařídit aby se po znovukliknutí na ten odkaz zobrazila náhodně nová stránka?
|
||
Joker Profil |
#22 · Zasláno: 26. 2. 2009, 15:57:47 · Upravil/a: Joker
xerno
nejjednoduší řešení a nejlepší začátek pro ty co neznaj javascript, proč myslíš že sem tam dal „<script type=text/javascript>“ ?? XD to cos mu poradil ty mu asi moc nepomohlo... Nesouhlasím. Že je někdo začátečník ještě neznamená, že se to musí naučit špatně. Právě naopak je tím spíš potřeba mu vysvětlit správné řešení. A if (nahoda == 1) var finito = "watanay"; if (nahoda == 2) var finito = "buraky"; ... je s prominutím prasárna. Minimálně povědomí o konstrukci switch-case patří mezi základní znalosti programování, a to nejen v Javascriptu. davecz šlo by nějak zařídit aby se po znovukliknutí na ten odkaz zobrazila náhodně nová stránka? Pokud se při každém kliknutí vygeneruje nové náhodné číslo... Takže bych to uzavřel do funkce, třeba: function nahodnaStranka(){ var songs= new Array("watanay","byraky","stanky"); var index = Math.floor(Math.random()*songs.length); window.location.href = songs[index]; } a odkaz: <a href="javascript:nahodnaStranka()">odkaz</a> |
||
Chamurappi Profil |
#23 · Zasláno: 26. 2. 2009, 16:20:37 · Upravil/a: Chamurappi
Reaguji na Jokera:
Správné řešení je v tomto případě pole, jak uvedl Osobně používám switch-case v JavaScriptu jen výjimečně. V podstatě nikdy. |
||
davecz Profil |
#24 · Zasláno: 26. 2. 2009, 16:24:55
to jsem zkoušel, ale píše mně to že songs není definováno
celkově mám teď tohle: <script> function nahodnaStranka(){ var songs= new Array("watanay","byraky","stanky"); var index = Math.floor(Math.random()*songs.length); window.location.href = songs[index]; } </script> <a href="javascript:nahodnaStranka()" id="link" target="ram">Písničky</a> <script> document.getElementById('link').href=songs[index] + ".html"; </script> </div></div> <iframe name="ram" align="top" width="600px" height="500px" scrolling="no" noresize="noresize" frameborder="0" src="ram.html"></iframe> ale pořád to nejede. Mějte se mnou prosím trpělivost:) |
||
Joker Profil |
#25 · Zasláno: 26. 2. 2009, 16:41:34
Chamurappi
Správné řešení je v tomto případě pole, jak uvedl habendorf. To s polem jsem psal já! :o) davecz to jsem zkoušel, ale píše mně to že songs není definováno Pokud je proměnná songs definovaná uvnitř funkce, tak platí jen uvnitř té funkce. Nicméně když je to napsané takhle, tak následující část už tam nemá být: <script> document.getElementById('link').href=songs[index] + ".html"; </script> |
||
davecz Profil |
#26 · Zasláno: 26. 2. 2009, 17:02:45
nejede to:)..nevím.
Neznáte nějakou stránku kde by ten skript byl už udělanej? |
||
Časová prodleva: 15 let
|
0