Oznámkuj to – JavaScript, AJAX, jQuery – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Oznámkuj to – JavaScript, AJAX, jQuery – Fórum – Programujte.comOznámkuj to – JavaScript, AJAX, jQuery – Fórum – Programujte.com

 

mara6660
Newbie
28. 12. 2007   #1
-
0
-

Nevi prosim nekdo nejaky script, ktery bych mohl pouzit na mem webu pro hodnoceni clanku? Potrebuji oznamkovat clanek od jedne do peti.

<html>


<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1250">
<title>PHP - anketa</title>
</head>

<body bgcolor="#FFFFFF" text="#000000">

<?php
if ($action == "send"): // tady začíná kód, který se vykoná po odeslání formuláře

if (File_Exists ("stats.txt")): // existuje soubor se statistikou?
$fp = FOpen ("stats.txt", "r");
$stats = Explode ("#", FRead ($fp, 999)); // načteme obsah souboru do pole, jednotlivé části řetězce oddělené znakem # přijdou do jednotlivých buněk
FClose ($fp);
else:
for ($i = 0; $i <= 5; $i++) $stats[$i] = 0; // pokud ještě soubor neexistuje, dáme všude nuly
endif;

if ($stats[0] != $REMOTE_ADDR) $stats[$znamka]++; // pokud tato známka přišla z jiné adresy než ta předchozí, přičteme ji
$stats[0] = $REMOTE_ADDR; // aktualizujeme poslední IP adresu

$hlasu = 0; // celkový počet hlasů (známek)
$suma = 0; // celková suma (počet každé známky násobená její hodnotou)
for ($i = 1; $i <= 5; $i++):
$hlasu += $stats[$i]; // přičteme počet této známky k celkovému počtu
$suma += $i * $stats[$i]; // přičteme počet známky krát její hodnotu k celkové sumě
endfor;
$prumer = (Round (100 * $suma / $hlasu)) / 100; // průměrná známka zaokrouhlená na dvě desetinná místa

$fp = FOpen ("stats.txt", "w"); // uložíme aktuální statistiky
FWrite ($fp, Implode ($stats, "#"));
FClose ($fp);
?>

<center><font face="Arial CE, Arial" size="5">
Jakou známku byste dali seriálu o PHP? (1... nejlepší, 5 ... nejhorší)<br>
Díky za hodnocení. Celkem seriál o PHP oznámkovalo <?php echo $hlasu ?> čtenářů
průměrnou známkou <?php echo $prumer; ?>.
</font></center>

<?php else: ?> // pokud ještě formulář nebyl odeslán, zobrazíme ho

<form action="anketa.php" method="post">
<center><font face="Arial CE, Arial" size="5">
Jakou známku byste dali seriálu o PHP? (1... nejlepší, 5 ... nejhorší)<br>
<input type="radio" name="znamka" value="1" checked> 1
<input type="radio" name="znamka" value="2"> 2
<input type="radio" name="znamka" value="3"> 3
<input type="radio" name="znamka" value="4"> 4
<input type="radio" name="znamka" value="5"> 5
<input type="hidden" name="action" value="send"><br>
<input type="submit" value="Oznámkuj!">
</font></center>
</form>

<?php endif; ?>

</body>

</html>


Toto jsem našel, je to v php, ale bohužel nevím jak to použít u více článků. Neni něco jednoduššího v Jave? Diky za odpoved.

Nahlásit jako SPAM
IP: 212.96.164.–
Orcslayer0
Stálý člen
28. 12. 2007   #2
-
0
-

Ukládání do souboru není zrovna šťastná varianta (můžeš se zkusit naučit třeba MySQL (http://www.linuxsoft.cz/article_list.php?id_kategory=232) a jak ho zkombinovat s php (toto začíná v seriálu php na článku http://www.linuxsoft.cz/article.php?id_article=328)).
Každopádně pokud chceš použít opravdu tento skript, tak každý článek může mít vlastní soubor se statistikami. ,) Např. "stats_clanek.txt". ,)

Edit ad javascript (Java je btw něco jiného): Můžeš použít ajax. ,) Ale samotné ukládání atd stejně musíš provést přes skript na straně serveru.

Nahlásit jako SPAM
IP: 85.70.82.–
Petroff0
Věrný člen
28. 12. 2007   #3
-
0
-

Stejně by mě zajímalo, proč se uchovává celá statistika, když jde jen o průměrnou hodnotu a počet hlasujících.
IP součástí statistiky nejsou, takže lze známkovat i vícekrát (jen to nesmí být hned po sobě).

JS (nikoliv java) by se snad dal využít nějak takto:
Pomocí dynamicky vytvořeného script tagu vytvořit RPC (Remote Procedure Call).
Zavolá se PHP skript na serveru, který zaktualizuje DB a pošle zpět JavaScriptový kód, který zaktualizuje hodnocení daného článku na stránce.

Nemusela by se načítat celá stránka, místo formuláře by u článků byla tlačítka typu

<a href="#" onclick="return aktualizuj('cl-10','1')">Známka=1</a> | <a href="#" onclick="return aktualizuj('cl-10','2')">Známka=2</a> . . . .


<script type="text/javascript">
function aktualizuj(clanek,znamka) {
// odmazeme stary skript, pokud existoval
var hlavicka = document.getElementsByTagName('head')[0];
var dataLoader = document.getElementById('scriptLoader');
if(dataLoader) hlavicka.removeChild(dataLoader);
// vytvorime novy element script
script = document.createElement('script');
script.id = 'scriptLoader';
script.src = 'update-rpc.php?clanek='+clanek+'&znamka='+znamka;

// POZOR, DULEZITE!! Skript musime vlozit do stranky pomoci DOM - appendChild()
// Ihned po vlozeni prohlizec stahne skript a spusti jej
x = document.getElementsByTagName('head')[0];
x.appendChild(script);
return false;
}
</script>


Tohle je jen nápad (mé zkušenosti s AJAXem a PHP jsou nulové)

Nahlásit jako SPAM
IP: 89.102.96.–
Al0
Věrný člen
28. 12. 2007   #4
-
0
-

proč si každej plete Javu a Java Script, když nemají nic společnýho?? :smile12:

Nahlásit jako SPAM
IP: 77.48.132.–
PSP user|Web developer|C4D user||Maya Lamer|Photoshop User|Guitar player
Blujacker
~ Moderátor
0
Grafoman
28. 12. 2007   #5
-
0
-

To Al : Žeby měli stejný základ jména :smile1:
Já si je taky před pár lety pletl :smile12:

Nahlásit jako SPAM
IP: 213.220.226.–
Navštivte server Matematika pro každého
Najdete zde články zabývající se matematikou základních a středních škol a databázi hlavolamů.
Pro vyzkoušení Vaš
Zelenáč0
Posthunter
28. 12. 2007   #6
-
0
-

To Blujacker : Já nikdy... Proč si alespoň nepletou javascript s actionscriptem? Mají víc společných písmen a není mezi nimi ani takový rozdl...

Nahlásit jako SPAM
IP: 89.176.254.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 8 hostů

Podobná vlákna

číslo na n-tou — založil Marek

Co tomu říkáte — založil Alan

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý