Autor | Zpráva | ||
---|---|---|---|
Monkeys Profil * |
#1 · Zasláno: 20. 8. 2012, 11:15:21
Nacitavam z databazi novinky a vypisujem ich cez Fancybox, problem je ze mi to nechce prehadzovat cislo id_noviniek ktore potrebuje pre identifikaciu toho clanku.
Vzdy mi to vrati len id prvej novinky. Neviem kde je chyba aby sa menilo id_noviniek po kliknuti. HTML <input name="hodnota" id="hodnota" type="hidden" value="'.$riadok['id_noviniek'].'" /> - skryte pole z ktoreho ziskavam id_noviniek z databaze (vypis v cykle cez PHP)
PHP (subor test) require_once('conect.php'); $hodnota = $_POST['hodnota']; $dotaz = mysql_query('SELECT popis FROM novinky WHERE id_noviniek='.$hodnota.''); $riadok = mysql_fetch_row($dotaz); echo json_encode($riadok); jQuery $(function (){ $.ajax({ type: 'POST', url: 'test.php', data: {hodnota: $('#hodnota').val()}, // myslim ze tu bude chyba neviem ako to inac zapisat dataType:'json', success: function(data){ var popis = data[0]; $('#inline3').html("<p>"+popis+"</p>"); } }); }); vdaka M. |
||
Keeehi Profil |
#2 · Zasláno: 20. 8. 2012, 12:16:47
Nemůžeš mít na stránce více elementů se stejným id.
|
||
Monkeys Profil * |
#3 · Zasláno: 20. 8. 2012, 12:38:47
Keeehi:
opravil som to na class ale vysledok je ten isty. Zistil som ze ak to ocislujem (zmenim tej class nazov) napr. hodnota1, hodnota2 ... tak to vyhodi spravne texty, to dokazem spravit cez vypis v cykle while napr class="hodnota'.$i.'"
ale ako to spravit na riadku v javascripte? data: {hodnota: $('.hodnota').val()}, M. |
||
Keeehi Profil |
#4 · Zasláno: 20. 8. 2012, 17:24:41
Monkeys:
Kdy ono tam ještě chybí, na jakou událost to reaguje. Tak jak je to napsané to vypadá, že se to provádí pouze jednou a to při načtení stránky. Jestli ano, tak proč k tomu vůbec používat ajax a nevkládat to do kódu přímo? |
||
Monkeys Profil * |
#5 · Zasláno: 20. 8. 2012, 19:02:18 · Upravil/a: Monkeys
Keeehi:
mas asi pravdu spracuje sa to len pri prvom nacitani stranky. „proč k tomu vůbec používat ajax a nevkládat to do kódu přímo?“ 1) Chcel som skusit nieco nove 2) Ak mam tych noviniek vypisat do HTML cez PHP 20,30 zda sa mi to zbytocne zatazovanie a nepride mi to efektivne. mozem to samozrejme napisat takto: while($row=mysql_fetch_array($sql, MYSQL_ASSOC)){ echo '<div id="inline'.$row['id_noviniek'].'" style="width:700px;height:100px;overflow:auto;">'.$row['popis'].'</div>'; } „na jakou událost to reaguje“ Myslis onClick ? oprava Neefektivne |
||
Keeehi Profil |
#6 · Zasláno: 20. 8. 2012, 20:25:43
Monkeys:
Naopak, neefektivní je ta možnost s ajaxem. Při použití ajaxu to máme 1 http požadavek na zobrazení stránky + 1 dotaz do db na výběr 20 idček, následně 20 http požadavků kvůli každému id a 20 dotazů do databáze. Při výpisu napřímo bez ajaxu to máme v nejlepším případě 1 http požadavek a 1 dotaz do db, v nejhorším případě 1 http požadavek a 21 dotazů do db. Tak či tak, minimálně se tím ušetří 20 požadavků, které by musel server obhospodařit. Ajax má smysl použít v případě, pokud nevíme, jestli tu informaci budeme potřebovat a zjišťuje se až na uživatelovo přání. Toto uživatelovo přání je vyjádřeno kliknutím nabo najetím na něco, prostě nějakou událostí na kterou se dá reagovat a jelikož je to událost nějakého jednoho elementu, můžeme lehce získat jeho id, class, či něco jiného pole čeho ho identifikujeme. Pokud však víme, že nějakou informaci budeme v každém případě zobrazovat, je použití ajaxu zbytečným plýtváním prostředky. Pokud se něco dělá správně, řešení je většinou jednoduché, protože je pro to připravené prostředí. Jelikož váš návrh je neobvyklý a špatný (ve smyslu proč něco dělat jednoduše, když to jde složitě), muselo by se to řešit složitěji. Vyzkoušet ajax není špatná myšlenka, ovšem tady na tento případ se nehodí. Proto se ptám: Chcete ještě stále tento problém vyřešit? |
||
Monkeys Profil * |
#7 · Zasláno: 20. 8. 2012, 22:31:15
Keeehi:
Dakujem za pekne vysvetlenie. Priznam sa ze tato myslienka ma inspirovala zo systemu MNews tam kde je zoznam clankov tak je tam moznost ukazat nahlad (este predtym ako upravim samotny clanok) no a tento nahlad sa zobrazuje formou fancyboxu. Preto tato myslienka chcel som niecop odobne. Avsak MNews pracuje bez databazi takze mozno tam to ma vyznam respektive neefektivita sa straca kedze su neni treba odosielat poziadavky do DB. „Chcete ještě stále tento problém vyřešit?“ Vyriesil som to nakoniec cez vypis PHP bez ajaxu. Vdaka M. |
||
Keeehi Profil |
#8 · Zasláno: 20. 8. 2012, 22:47:17
Monkeys:
Nevím, jak funguje MNews, ale 1. Pokud něco píšete do textového pole, tak stránka k tomu má přístup. Nemusí selo by se to většinou odesílat na server a zpětně zase načítat. 2. I kdyby to řešené ajaxem řešené bylo, je to správný příklad použití ajaxu. V době generování té stánky neznáme, co se do toho pole napíše a ani nevíme, zda si náhled bude chtít ten člověk zobrazit, nebo to uloží bez náhledu. |
||
Časová prodleva: 12 let
|
0