| | |
| Stránka: 1 z 1
| [ Príspevkov: 6 ] | |
Autor | Správa |
---|
Registrovaný: 21.09.08 Prihlásený: 14.11.17 Príspevky: 225 Témy: 74 Bydlisko: Michalovce |
Nazdarek. Mam takyto script na zobrazenie smajlikov:
Kód: <script type="text/javascript">
function showSmiles(fm, it, us) { var params = "where="+fm+"&con="+it+"&who="+us;
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("smile").innerHTML=xmlhttp.responseText; }
} xmlhttp.open("POST","ukazsmailovx.php",true); xmlhttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); xmlhttp.setRequestHeader("Content-length", params.length); xmlhttp.send(params);
}
</script>
<? echo" <a href=\"javascript:showSmiles('formular', 'vstup', 'uzivatel')\">Zobraziť smajlikov</a> ";
echo" <div id=\"smile\"></div> "; ?>
No a ja by som chcel docielit to, ze po kliknuti na odkaz: Zobraziť smajlikov sa mi text zmeni na Skryť smajlikov. A nasledne po kliknuti na odkaz Skryť smajlikov sa ty smajlici "stratili". Teda aby som tu Ajaxovu funkciu zrusil. Zmenit text odkazu..to mi je jasne..cez .innerHTML. Ale ako zrusit tu Ajaxovu funkciu (teda zrusit/skryt tych smajlikov)..tak to naozaj netusim.Vedel by mi niekto poradit?? Co s tym resp. Ako na to??
|
|
Registrovaný: 11.08.07 Príspevky: 4088 Témy: 34 Bydlisko: Brno | Napísal Ďuri: 13.11.2010 11:13 | |
|
Co takto Kód: document.getElementById('smile').innerHTML = '';
|
|
Registrovaný: 21.09.08 Prihlásený: 14.11.17 Príspevky: 225 Témy: 74 Bydlisko: Michalovce |
Ďuri...Neviem ci som ta spravne pochopil.Ak nie, tak ma oprav..Mna to napadlo riesit, tak ze este pridam 1 funkciu..A potom ten script vyzera nejako takto:
Kód: <script type="text/javascript">
function showSmiles(fm, it, us) { var params = "where="+fm+"&con="+it+"&who="+us;
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("smile").innerHTML=xmlhttp.responseText; document.getElementById('adresa1').style.display = 'none'; document.getElementById('adresa2').style.display = 'block'; }
} xmlhttp.open("POST","ukazsmailovx.php",true); xmlhttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); xmlhttp.setRequestHeader("Content-length", params.length); xmlhttp.send(params);
}
function CloseSmiles() {
document.getElementById('smile').innerHTML = ''; document.getElementById('adresa2').style.display = 'none'; document.getElementById('adresa1').style.display = 'block'; } </script>
<? echo" <a href=\"javascript:showSmiles('formular', 'vstup', 'uzivatel')\" id=\"adresa1\" style=\"display: block\">Zobraziť smajlikov</a> <a href=\"javascript:CloseSmiles()\" id=\"adresa2\" style=\"display: none\">Skryť smajlikov</a> ";
echo" <div id=\"smile\"></div> "; ?>
Ja neviem ci je to dobre riesenie. Totiz JS/Ajax nie je mojou silnou strankou Tak ak je to zle, resp. existuje nejake lepsie/elegantnejsie riesenie, tak si velmi rad necham poradit/vysvetlit.
|
|
Registrovaný: 11.08.07 Príspevky: 4088 Témy: 34 Bydlisko: Brno | Napísal Ďuri: 13.11.2010 15:15 | |
|
Nemusis pouzivat 2 odkazy. Spravne si uvazoval, ze text Zobrazit smajlikov/Skryt smajlikov mozes menit pomocou innerHTML (a href atribut analogicky), preco si tak neurobil? Inak je to v poriadku. Este je mensi problem to, ze po kazdom kliknuti na Zobrazit smajlikov sa vytvori novy HTTP request - je to nutne? Nechces si len obsah #smile ulozit do nejakej premennej a pri druhom zobrazeni smajlikov by sa to proste vytiahlo z premennej.
A v podstate, je nutne vobec Ajax pouzivat? Neslo by spravit nieco take, ze vsetky smajliky proste vypises do div#smile, ktory by bol defaultne skryty a kliknutim by sa len zobrazili?
|
|
Registrovaný: 21.09.08 Prihlásený: 14.11.17 Príspevky: 225 Témy: 74 Bydlisko: Michalovce |
Ďuri.. Ja som to pôvodne riesil bez Ajaxu. Tak, ze ty smajlici boli defaultne skryty a kliknutim sa len zobrazili, ale problem bol potom v nacitavani stranky..Teda problem..Ak je tych smajlikov vela (v mojom pripade okolo 250) a k tomu este nejake prispevky z DB, tak to dost dlho nacitavalo stranku. To co navrhujes
Citácia: Nechces si len obsah #smile ulozit do nejakej premennej a pri druhom zobrazeni smajlikov by sa to proste vytiahlo z premennej.
sa mi zda ako najlepsie riesenie, lenze v mojom pripade je tu maly problem.Totiz neviem ako to urobit. Ak by si mi mohol s tym pomôct, alebo aspon poradit ako na to, bol by som velmi rad. Hlavne co sa tyka, toho ulozenia obsahu do premennej a potom overenie premennej vo funkcii.
|
|
Registrovaný: 21.09.08 Prihlásený: 14.11.17 Príspevky: 225 Témy: 74 Bydlisko: Michalovce |
Takže nakoniec som ťa Ďuri "posluchol" a urobil som ten script na tych smajlikov bez Ajaxu. To "dlhe" nacitavanie som vyriesil tym, ze som tych smajlikov rozdelil, resp. urobil take jednoduche strankovanie.
Tu je script:
Kód: <script type="text/javascript">
function showSmiles(fm, inp, task, pg) {
var p1 = ( pg * 40) - 40; var p = p1 + 1; var m = (pg * 40); var page;
// Navigacia Ďalšie if (pg >=1 && pg < 5) { page = pg + 1; var next ="<a href=\"javascript: showSmiles('"+fm+"', '"+inp+"', '"+task+"', "+page+");\"> Ďalšie </a>"; } else { page = pg; var next =""; } // Navigacia Späť if (pg >1 && pg <=5) { page = pg - 1; var prev ="<a href=\"javascript: showSmiles('"+fm+"', '"+inp+"', '"+task+"', "+page+");\"> Späť </a>";
} else { page = pg; var prev =""; }
// KONIEC Navigacia
document.getElementById('nav').innerHTML = prev + next;
var smajl = new Array();
for(i=p; i<=m; i++) { smajl[i] = "<a href=\"javascript: smiles(document."+fm+"."+inp+", ':"+i+":', '');\" style=\"margin: 2px; cursor: pointer\"> <img src=\"./smiles/smiley"+i+".gif\" title=\"smiley"+i+"\"> </a>"; } smajl =smajl.join(" "); document.getElementById('smile').innerHTML = smajl; if(task == 'show') { document.getElementById('link').innerHTML ="<a href=\"javascript: showSmiles('"+fm+"', '"+inp+"', 'close', "+page+");\"> Sktyť smajlíkov </a>"; document.getElementById('smile').style.display = 'block'; document.getElementById('nav').style.display = 'block';
} else { document.getElementById('link').innerHTML ="<a href=\"javascript: showSmiles('"+fm+"', '"+inp+"', 'show', "+page+");\"> Zobraziť smajlíkov </a>"; document.getElementById('smile').style.display = 'none'; document.getElementById('nav').style.display = 'none'; } }
</script>
<? echo" <div id=\"link\"> <a href=\"javascript: showSmiles('reakcia', 'blogKoment', 'show', 1);\"> Zobraziť smajlíkov </a></div>
<div id=\"nav\" style=\"display: block\"></div>
<div id=\"smile\" style=\"display: none\"> </div>";
?>
Ak ma niekto lepsie/elegantnejsie/jednoduchsie riesenie, prosim, sem s nim.. Rad sa naucim nieco nove..
|
|
| Stránka: 1 z 1
| [ Príspevkov: 6 ] | |
Podobné témy | Témy | Odpovede | Zobrazenia | Posledný príspevok |
---|
| Skryť IP v Sieťové a internetové programy | 6 | 370 | 26.09.2012 19:29 PepeTheDragon | | Ukázať/skryť obsah v JavaScript, VBScript, Ajax | 17 | 1235 | 05.02.2010 14:44 pilná lama glama | | video, skryt ovladanie prehravaca v HTML, XHTML, XML, CSS | 3 | 464 | 12.07.2011 14:06 weroro | | Skryť časť kódu pri IE6 v HTML, XHTML, XML, CSS | 2 | 478 | 26.02.2010 17:32 rsn4ke | | Ako skryt scrollbar v terminaly v Operačné systémy Unix a Linux | 0 | 438 | 02.02.2010 23:40 Ivan11114 | | skryt IP adresu v lokalnej sieti? v Sieťové a internetové programy | 2 | 1701 | 09.11.2005 16:03 Luks | | Ako mam skryt moju IP, resp. zmenit v Sieťové a internetové programy | 2 | 817 | 15.08.2008 0:23 suchy | | ako skryť .html napriklad kuma.sk/info v HTML, XHTML, XML, CSS | 7 | 524 | 30.11.2014 19:54 Mego | | 3Ds Max rigg - ako skryť bipedove kosti po riggingu v Grafické programy | 0 | 507 | 29.03.2011 18:03 FxEngine | | Tlačítko Zobraziť v HTML, XHTML, XML, CSS | 5 | 342 | 05.10.2013 20:00 majky358 | | ako zobrazit registre v Operačné systémy Microsoft | 1 | 501 | 14.09.2009 16:32 Milan.H | | Zobrazit len raz v PHP, ASP | 17 | 888 | 21.12.2008 15:34 Tominator | | zobraziť uložené heslá v Operačné systémy Microsoft | 1 | 405 | 12.11.2014 17:48 hanesovic | | Ako zobraziť******(skrite) heslo v Smartfóny a tablety | 8 | 946 | 05.03.2016 11:19 SKRiPT | | po kliku zobraziť text v JavaScript, VBScript, Ajax | 2 | 454 | 13.07.2009 19:29 Draex | | tablet zobrazit na TV v Smartfóny a tablety | 5 | 308 | 29.11.2014 13:34 kraken8 |
| Nemôžete zakladať nové témy v tomto fóre Nemôžete odpovedať na témy v tomto fóre Nemôžete upravovať svoje príspevky v tomto fóre Nemôžete mazať svoje príspevky v tomto fóre
|
|