Autor Zpráva
Vitality77
Profil *
Dobrý den,
Snažím se vypracovat anketu, ne sloupcovou kde ke každé odpovědí je samostatný sloupec s procenty, ale anketu s 5 obrázky, hodnocení od 1 po 5 a dané obrázky jsou pak procentuálně spočitané a zobrazený podle procent buď vyplněné nebo ne.. Slovem něco takového jak je na tady te stránce. Snažil sjem se najít na netu nějaký návod, bez úspěchu. A tak jsem se na to vrhnul svým selským rozumem.
Mám kod:
<?php
     function porovnej($id){
     global $komplet;
     if ($komplet>=$id) {$obrazek="ankety/zluta.png";}
     else {$obrazek="ankety/bila.png";}
     return($obrazek);
     }     
          echo "<div class='anketa'>
          <div class='hvezda' title='1 / 5'><a href=\"ankety/hlasuj.php?volba=0\"><img src=".porovnej(1)." id='i1' onmouseover=\"zmen('i1')\" /></a></div>
          <div class='hvezda' title='2 / 5'><a href=\"ankety/hlasuj.php?volba=1\"><img src=".porovnej(2)." id='i2' onmouseover=\"zmen('i2')\" /></a></div>
          <div class='hvezda' title='3 / 5'><a href=\"ankety/hlasuj.php?volba=2\"><img src=".porovnej(3)." id='i3' onmouseover=\"zmen('i3')\" /></a></div>
          <div class='hvezda' title='4 / 5'><a href=\"ankety/hlasuj.php?volba=3\"><img src=".porovnej(4)." id='i4' onmouseover=\"zmen('i4')\" /></a></div>
          <div class='hvezda' title='5 / 5'><a href=\"ankety/hlasuj.php?volba=4\"><img src=".porovnej(5)." id='i5' onmouseover=\"zmen('i5')\" /></a></div>
          </div>";
?>
kde komplet je nějaké celkové hodnocení dejme tomu 3 z pěti zaokrouhlené.
následuje javascript:
<script>
function zmen(id){

var mystring = id;
mystring = mystring.replace('i','');
//alert(mystring);


for (var i=1; i<=mystring; i++)
{
var id=('i'+i);
document.getElementById(id).src="ankety/oranzova.png";
//alert(id);
}


var object=document.getElementById(id);
object.onmouseout=function zmizni(){
for (var i=mystring; i>0; i--)
{
var id='i'+i;
document.getElementById(id).src='<?php $id="'+i+'"; echo porovnej($id); ?>';
alert('<?php $id="'+i+'"; echo porovnej($id); ?>');
//alert('<?php echo porovnej("'+i+'"); ?>');
}
}

}
</script>
Jde o to.. že v php funkce porovnej funguje. Když komplet je třeba 3 a id(ve funkci) je 5 tak obrázek je bilý, když rovná se nebo menší obrázek je žlutý. Funguje to dobře všechno v pořádku. Problém nastává v javascriptu kde volám porovnej takto: document.getElementById(id).src='<?php $id="'+i+'"; echo porovnej($id); ?>'; Tady už to nefunguje.. když dám echo porovnej(4); 4 nebo 5 je bilá, 3 a méně žlutá v pořádku. Ale potřebují aby do toho porovnej se vložilo momentální ičko a prošlo funkci porovnej. Když to chcu ověřít pomoci alert //alert('<?php echo porovnej("'+i+'"); ?>'); tak to vyhazuje okna přesně s takovými čísly jaké chci, php funkce však nefunguje jak má.. Kde je prosím chyba.. Já to nechápu.. Děkují za rady, doufám že jsem se jasně vyjádřil:)
Ještě jedna otázka, nevíte jaký vzorec by byl na počítání toho komplet/celku nebo jak se to dá nazvat.. Nějaký průměr.. Když hlasovalo 5 lidi za 5 10 lidi za 3 a 2 lidi za 2, jak spočítám průměrný vzorec aby to bylo v těch obrázkach od 1-5.. díky :)


Tady je znázornění, jak to vypadá a co mám na myslí :) v po najetí myši na hvězdu můžete vidět že v javascriptu to píše opravdu dobře ale php se nechytá.. odkaz
Vitality77
Profil *
Díky za odpovědí... ale zjistil jsem že do php funkci nelze vkládat javascript variably.. už mi to funguje ale pořád nevím ten vzorec. Jak spočítám to číslo aby se zobrazily hvězdičky v poměrů ( x / 5 ). Na ten vzorec nijak nemůžu přijít..
Taps
Profil
Vitality77:
Snažil sjem se najít na netu nějaký návod, bez úspěchu
http://www.php.cekuj.net/ajax/hvezdickove-hodnoceni-v2

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

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