Diskuze: Hodnocení pomocí hvězdiček
V předchozím kvízu, Online test znalostí PHP, jsme si ověřili nabyté zkušenosti z kurzu.

Tvůrce

Zobrazeno 19 zpráv z 19.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
V předchozím kvízu, Online test znalostí PHP, jsme si ověřili nabyté zkušenosti z kurzu.
Jak je umístit na stránku, aby se měnily při najetí myší a volba se
odeslala na server.
Edit: S uložením hlasu do databáze a získáním průměru z hlasů při
generování stránky bych neměl problém.
JavaScript/jQuery a AJAX
pri "najetí" myši na hviezdičku zmeníš src obrázku alebo nehradíš celý
obrázok ... a pri kliknutí to odošleš ajaxom - http://api.jquery.com/jquery.ajax/ (alebo normálne pomocou
presmerovania)
místo obrázku, můžeš použít obrázkové fonty, půjde ten hover napsat i v CSS.
Vložíš si vedle sebe hvězdičky(třeba divy) a ještě jim dáš atribut data-rating="1,2,3 etc.". Při najetí na hvězdičku stačí zjistit jaký má ta hvezdička rating a podle toho to vykreslit. Potom při kliknutí se pomocí ajaxu odešlou data do php souboru(dál si to musíš nějak zabezpečit)
Máš, nejčastěji, 5 hvězdiček. Ty chceš, aby když klikneš na 4. hvězdu, tak aby byly změněné všechny 4. To asi v CSS nepůjde, proto musíš využít JS.
To uděláš tak, že vlastně ty hvězdičky mají v nějakém <div class="hodnoceni"> svůj index, takže když šáhneš na 4., index máš 3 (počítá se samozřejmě od 0) a jen stačí změnit obrázek všem hvězdám co mají index <= 3.
Po kliku na hvězdu se ti odešle třeba ten index + 1 a uloží se ke
článku.
Takto nějak bych to udělal já.
A ten AJAX se používá jak? Nikdy jsem ho nepoužíval.
Co dělá AJAX :
Vlastně ty máš nějaký PHP na serveru, a JS pro klienta.
Ale můžeš v JS zavolat AJAXem nějaký script na serveru a třeba vytáhnout
z databáze po kliku na tlačítko nějaký text nebo tak.
$.ajax({
type: "POST",
url: "adresa php souboru",
data: {pocetHvezdicek:4, dalsidata:"..."},
success: function(){
window.alert("Váš hlas byl zaznamenán")ů
}
});
Takže něco na styl
var request = $.ajax({
url: "PHP/rate.php",
type: "POST",
data: { starId : 4 }
});
?
Tak nějak, v PHP si jen načteč to starId a s tím pak pracuješ.
Dělá se to nejlépe tak, aby to vše běželo i bez JS, tzn. když je JS
zaplý, udělá se to přes AJAX, když ne, udělá se to s reloadem stránky.
Ještě otázka mimo téma - Jak vyřešit počet stažení aplikace?
Zobrazeno 19 zpráv z 19.