Autor Zpráva
P3T3R
Profil
Dobrý deň,

potreboval by som nejaký script na striedanie optionov zo selectu.
Option dáva value z databázy (číslo/ID).

Ako ukážku dávam kód:

 <select id="zobrazgraf" name="zobrazgraf">  
		<option value="1">Index</option>
<option value="2">Hladovka</option>
<option value="3">Vitanová</option>
<option value="4">Liesek</option>

<option value="5">Trstená</option>
<option value="6">Brezovica</option>
<option value="7">Zabiedovo</option>
<option value="8">Tvrdošín</option>
<option value="9">Štefanov</option>
<option value="10">Nižná</option>
<option value="11">Podbieľ</option>
<option value="12">Krivá</option>
<option value="13">Dlhá</option>

<option value="14">Oravský Podzámok</option>
<option value="15">Dolný Kubín</option>
<option value="16">Istebné</option>
<option value="17">Suchá hora</option>
<option value="21">Test</option>
			</select>


Po kliknutí na option ukáže grafy pre danú obec, potrebujem aby sa po 30 sekundách striedali a vypisovali grafy.
30 sekúnd index - potom 30 sekúnd Hladovka atď dookola až kým nekliknem na zastaviť striedanie grafov.


Ďakujem
Radek Cvek
Profil
Střídání v intervalu není problém - důležité je: Jak se vypisuje ten graf? Pomocí javascriptu? Pomocí PHP? Nebo je na něj nějaký odkaz? Je to obrázek?
P3T3R
Profil
Pomocou php

			 <select id="zobrazgraf" name="zobrazgraf">  
		<?php
		while ($dedina = mysql_fetch_array($dedR))  
		{
		$dediny[]=$dedina['dedina_id'];
		if($dedina[dedina_id]==$_GET['zobrazgraf']) $add=" SELECTED";
		echo '<option value="'.$dedina[dedina_id]."\"$add>".$dedina[dedina]."</option>\n";
		unset($add);
		}
		?>
Radek Cvek
Profil
Tím kódem se zobrazuje SELECT s OPTIONY z databáze, ale jak se zobrazuje graf? Třeba portal.sk/zobraz_graf.php?dedina=Blava nebo portal.sk/grafy/blava.jpg ...
Nebo stačí, aby se v SELECTU střídalo SELECTED u OPTIONU a neodesílalo se to - potom se nebude měnit graf, ale jenom vybraný OPTION?
P3T3R
Profil
Myslíš toto?

echo "\n<div class=\"ping\" id=\"$id\"> 
     <p>$nazov</p> 
 		 <img src=\"$adresa\" class=\"grafik\" alt=\"ping\" />  
		 <a class=\"pridat\" href=\"nahradit.php?id=$id\"><img src=\"obrazky/nahradit.png\" alt=\"Nahradiť graf\"  />Nahradiť graf</a> 
        <a class=\"zmazat\" href=\"#\"><img src=\"obrazky/zmazat.png\" alt=\"Zmazať graf\"  />Zmazať graf</a> 
    </div>\n"; 


premenná adresa sa definuje obrázok grafu kde je umiestnený (na inom servery). Každý graf je iný, takže rovnaká adresa tam nie je.

A adresa na zobrazenie optionu je takáto: adresa.sk/?zobrazgraf=2 pre zobrazenie optionu č.2
Radek Cvek
Profil
adresa.sk/?zobrazgraf=2 - to je ono a výstup je jenom obrázek? To by bylo nejjednodušší.
a vlastně je to jedno
P3T3R
Profil
Radek Cvek:
Áno výstup je obrázok, konkrétne 15 takých obrázkov sa tam zobrazí.

Ide o monitorovanie grafov obcí. Takže sa ich na obrazovke zobrazí 15.
Ako to riešiť to striedanie? Potrebujem ale aby sa to manuálne vyvolalo keď kliknem na spustiť striedanie grafov a zastavilo sa to pri zastaviť striedanie grafov.

Ďalej by som potreboval to, že keď dáš zastaviť striedanie grafov, tak sa obrázky potom obnovujú každých 30 sekúnd, len obrázky. Keďže je tam každá iná adresa predpokladám nejaký javascript.

Potom - keď stojí na zastavení grafov a dáš spustiť striedanie grafov, tak sa pustí od aktuálneho, nie od začiatku.
Pri výbere grafu zo selectu napr. Index sa obrázok nesmie ďalej posúvať, musia sa len obnovovať obrázky grafov.


Ďakujem
Radek Cvek
Profil
pokud mám skript třeba zobrazgraf.php a volám ho třeba zobrazgraf.php?zobrazgraf=2
tak to bude takto:
<html>
<head>
<script type="text/javascript">
setInterval(zmenDedinu, 3000);

function zmenDedinu()
{
var myselect=document.getElementById("zobrazgraf");
loadXMLDoc(myselect.value);
for (var i=0; i<myselect.options.length; i++){
  myselect.options[i].selected=false; 
 }
myselect.options[Math.floor(Math.random() * myselect.options.length)].selected=true;
}

function loadXMLDoc(dedina)
{
var xmlhttp;
if (window.XMLHttpRequest)
  {// code for IE7+, Firefox, Chrome, Opera, Safari
  xmlhttp=new XMLHttpRequest();
  }
else
  {// code for IE6, IE5
  xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
  }
xmlhttp.onreadystatechange=function()
  {
  if (xmlhttp.readyState==4 && xmlhttp.status==200)
    {
    document.getElementById("graf").innerHTML=xmlhttp.responseText;
    }
  }
xmlhttp.open("GET","zobrazgraf.php?zobrazgraf=" + dedina, true);
xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");
xmlhttp.send();
}
</script>
</head>
<body>

<form>
<select id="zobrazgraf" onchange="loadXMLDoc(this.value)" name="zobrazgraf">  
<option value="1">Index</option>
<option value="2">Hladovka</option>
<option value="3">Vitanová</option>
<option value="4">Liesek</option>
</select>
</form>

<div id="graf"></div>
 
</body>
</html>


- po určité době se změní selected u optionu a AJAXem se podívám, co je v zobrazgraf.php a vypíšu to do div id="graf"
- střídání jsem udělal náhodně, protože už jsem to tu viděl a bylo to pro mě rychlejší
Radek Cvek
Profil
jenom střídání toho optionu je:
<html>
<head>
<script type="text/javascript">
setInterval(zmenOption, 3000);

function zmenOption()
{
var myselect = document.getElementById("zobrazgraf");
var vybrany = myselect.selectedIndex;
myselect.options[vybrany].selected=false;
myselect.options[vybrany+1].selected=true;
}

</script>
</head>
<body>

<form>
<select id="zobrazgraf" name="zobrazgraf">  
<option value="1">Index</option>
<option value="2">Hladovka</option>
<option value="3">Vitanová</option>
<option value="4">Liesek</option>
</select>
</form>

<div id="graf"></div>
 
</body>
</html>

nekontroluju délku selectu a funguje to options[3+1]=options[0]
P3T3R
Profil
Radek Cvek:
ĎAKUJEM :) Ono to funguje, len som Ti zabudol povedať, že sa to musí aj načítať zo optionu.
Každý option má niečo definované, ktoré grafy má zobraziť.

Teraz mi robí to, že sa akurát striedajú optiony, avšak obsah z optiónov sa nenačíta. Inak to funguje zatiaľ dobre.

Ďakujem

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

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

0