Forum » Izdelava spletišč » Kako se lotit? (php MySql)
Kako se lotit? (php MySql)
hcet ::
Imam slike shranjene v mapi in podatke o vsaki sliki shranjene v bazi..
Imam 2 gumba (naprej) in (nazaj)..
Želel bi, da ko pritisnem (naprej), da se prikaže naslednja slika in vsi podatki iz baze o tej sliki.. in tako naprej..
Žal pa nevem, na kakšen način bi se tega lotil?
Imam 2 gumba (naprej) in (nazaj)..
Želel bi, da ko pritisnem (naprej), da se prikaže naslednja slika in vsi podatki iz baze o tej sliki.. in tako naprej..
Žal pa nevem, na kakšen način bi se tega lotil?
gufy123 ::
slike boš prikazoval na strani npr. slika.php?id=5, kjer je id ime parametra in 5 njegova vrednost, ki označuje nek zapis v bazi.
ta id prebereš preko $_GET in narediš query na bazo, kjer dobiš vse podatke: source, naslov, opis slike, ...
za link naprej narediš link slika.php?id=6 in za link nazaj slika.php?id=4, če je seveda trenutni id>1.
to je samo primer, v praksi boš verjetno lahko precej bolj zakompliciral (ker si id-ji slik ne bodo tako sledili, ...)
ta id prebereš preko $_GET in narediš query na bazo, kjer dobiš vse podatke: source, naslov, opis slike, ...
za link naprej narediš link slika.php?id=6 in za link nazaj slika.php?id=4, če je seveda trenutni id>1.
to je samo primer, v praksi boš verjetno lahko precej bolj zakompliciral (ker si id-ji slik ne bodo tako sledili, ...)
hcet ::
Imam še en problem, imam jquery slider z dvema gumboma, ki premikata slike nazaj in naprej. Kot je že gufy123 napisal, bi se moral ob pritisku naprej id povečat.
Ampak nevem, kako bi to rešil, ne da bi se stran zmeraj osveževala..
Ampak nevem, kako bi to rešil, ne da bi se stran zmeraj osveževala..
<script type="text/javascript"> $(function() { $(".slider").jslider({ btnNext: ".next", btnPrev: ".prev" }) }); </script>
Zgodovina sprememb…
- spremenil: hcet ()
illion ::
sliderji delujejo tko, da v nek tag (ponavadi ul) nafilaš vse thumbnaile:
potem klčeš slider na ta ul in ti sam skrije vse thumbnaile razen enga (ali več, kokr že deluje slider) in potem s klikanjem na next/prev samo slida te thumbnaile levo/desno oz. gor/dol, kokr maš pač nastavlen
skratka kle boš mogu izpisat vse thumbnaile na eni strani, veliko sliko pa lahko potem pokažeš s pomočjo kkšnga lightboxa/colorboxa/... ob kliku na thumbnail
<ul> <li> <a href="velika_slika1.jpg"><img src="mala_slika1.jpg" /></a> </li> <li> <a href="velika_slika2.jpg"><img src="mala_slika2.jpg" /></a> </li> <li> <a href="velika_slika3.jpg"><img src="mala_slika3.jpg" /></a> </li> <li> <a href="velika_slika4.jpg"><img src="mala_slika4.jpg" /></a> </li> <ul>
potem klčeš slider na ta ul in ti sam skrije vse thumbnaile razen enga (ali več, kokr že deluje slider) in potem s klikanjem na next/prev samo slida te thumbnaile levo/desno oz. gor/dol, kokr maš pač nastavlen
skratka kle boš mogu izpisat vse thumbnaile na eni strani, veliko sliko pa lahko potem pokažeš s pomočjo kkšnga lightboxa/colorboxa/... ob kliku na thumbnail
hcet ::
illion, imaš prav, ampak jaz kličem podatke (pod do slike in ostali podatki o sliki) iz baze, zato ne morem kar vpisat naslovov.
Delovati mora tako, da ko kliknem next gumb, da v bazi preveri, kateri id je naslednji in tako prikaže sliko in vse informacije.
Ampak ne znam tega rešit. Php kodo imam, vendar je tu potreba še po jqueryu in ajaxu, če se ne motim, teh jezikov pa ne znam najbolje :(
Delovati mora tako, da ko kliknem next gumb, da v bazi preveri, kateri id je naslednji in tako prikaže sliko in vse informacije.
Ampak ne znam tega rešit. Php kodo imam, vendar je tu potreba še po jqueryu in ajaxu, če se ne motim, teh jezikov pa ne znam najbolje :(
illion ::
ena opcija je, da uporabš javaskripto in ko klikaš prev/next izpisuješ podatke o sliki nekam pod sliko:
podatke o slikah daš v javaskript objekt, slider ma zihr callback opcijo (morš pogledat api), ki se kliče ob kliku na next/prev, takrat prikažeš podatke o tej sliki v nekem div/drugem elementu, tko nekak:
to je psevdo koda, na tak način lahko prikazuješ podatke o trenutno prikazani sliki v nekem div-u recimo.
podatke o slikah daš v javaskript objekt, slider ma zihr callback opcijo (morš pogledat api), ki se kliče ob kliku na next/prev, takrat prikažeš podatke o tej sliki v nekem div/drugem elementu, tko nekak:
<script type="text/javascript"> $(function() { //podatke, recimo naslov, opis,.. spravš v objekt var imginfo = { slika1: {title: 'slika 1', description: 'o sliki 1...', drugo: 'nek podatek..'}, slika2: { ... } }; //jslider ma zirh nek parameter, kjer nastavš callback funkcijo, ko se slika //zamenja, poglej v jsliderjev api, kle sm si zmislu, da je to 'onSlideEnd' $(".slider").jslider({ btnNext: ".next", btnPrev: ".prev", onSlideEnd: function (el) { //predvidevam, da je element el deajnsko 'li' element, iz njegovga info_key atributa //dobiš kluč, pod katerim maš shranjene podatke o sliki v imginfo objektu //info_key atribut nastavš v hmtl kodi, glej spodaj //če element ni li ampak a oz. img, prestav ta atribut iz li v a oz. img var infoKey = $(el).attr('info_key'); $('div#img_info').find('.title').html(imginfo[infoKey].title); $('div#img_info').find('.description').html(imginfo[infoKey].description); $('div#img_info').find('.drugo').html(imginfo[infoKey].drugo); } }) }); } </script> </head> <body> ... <ul> <li info_key="slika1"><a href="velika_slika.png"><img src=".."... </li> ... </ul> ... <div id="img_info"> <div class="title"></div> <div class="description"></div> <div class="drugo"></div> </div> </body>
to je psevdo koda, na tak način lahko prikazuješ podatke o trenutno prikazani sliki v nekem div-u recimo.
techfreak :) ::
Slider ti bi v tem primeru (ko želiš za vsako sliko posebej pogledati v bazo) pomagal samo v primeru, da bi preloadal eno ali več slik. Kar je pa že kar nekaj dela in verjetno se bolj splača prikazovati vsako posebej, brez sliderja.
hcet ::
Sem odstranil slider in zdaj na vsaki action post kličem slike (naprej/nazaj), skripta zdaj v celoti deluje, vendar pa me moti vsakokratno osveževanje celotne strani, ko menja sliko :/
Zgodovina sprememb…
- spremenil: hcet ()
gufy123 ::
pa naredi z ajax-om. gumb naprej bo en div, gumb nazaj bo drug div in slika s podatki bo v tretjem div-u.
ob kliku na gumb naprej ali nazaj se ti bodo vse trije divi osvežili brez nalaganja cele strani
ob kliku na gumb naprej ali nazaj se ti bodo vse trije divi osvežili brez nalaganja cele strani
hcet ::
Vključil sem ajax, problem spet nastane, ker sem prej slike in podatke o sliki klical glede na url naslov npr. ?id=102, zdaj pa če bi hotel prikazat naslednjo sliko bi moral spremeniti naslov (npr ?id=105) za kar pa je potrebna osvežitev strani, česar pa nočem..
Zanima me, kje bi hranil "id", bi to lahko bil $_SESSION?
Zanima me, kje bi hranil "id", bi to lahko bil $_SESSION?
illion ::
dej prvo povej kaj točno bi rad mel? samo prikaz slik z naprej/nazaj in izpis določenih podatkov v povezavi s sliko, al tud štetje kokrat je bla slika prikazana? bi mel tko kokr ma facebook? a delaš galerijo al je to samo del srtani?
hcet ::
Sliko lahko uploadaš, vpišejo se podatki kot so ime, kategorija, tagi..
Zraven je ocenjevanje z zvezdicami (5 zvezdic), šteje pa tudi, koliko ogledov slike je bilo.. ko bo izdelek končan, pride zraven še facebook like button in google +1.
Ajax
Html, gumb nazaj..
Html, prikaz slike
Php, preveri
nato glede na id, odpre bazo in izlušči podatke od tej sliki..
Zraven je ocenjevanje z zvezdicami (5 zvezdic), šteje pa tudi, koliko ogledov slike je bilo.. ko bo izdelek končan, pride zraven še facebook like button in google +1.
Ajax
<script type="text/javascript"> var http = false; if(navigator.appName == "Microsoft Internet Explorer") { http = new ActiveXObject("Microsoft.XMLHTTP"); } else { http = new XMLHttpRequest(); } //get value (variable) from url function gup( name ) { name = name.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]"); var regexS = "[\\?&]"+name+"=([^&#]*)"; var regex = new RegExp( regexS ); var results = regex.exec( window.location.href ); if( results == null ) return ""; else return results[1]; } var test = gup('id'); function prev() { http.open("GET", "test.php?id="+test , true); http.send(null); http.onreadystatechange=function() { if(http.readyState == 4) { document.getElementById('desc').innerHTML = http.responseText; //vpiše text v div id desc } } http.send(null); } </script>
Html, gumb nazaj..
<input id="prev" onclick='javascript:prev();' name="prev" class="prev" value="" />
Html, prikaz slike
<div class="wp"> <?php echo '<img class="wp" src="images/'.$image_name.'" alt="'.$image_caption.'"/>'; ?> </div>
Php, preveri
if (isset($_GET["id"])) { $id = $_GET["id"]; // get data }
nato glede na id, odpre bazo in izlušči podatke od tej sliki..
keworkian ::
Zakaj pa nimaš globalne spremeljivke pol bi pa samo v funkciji prev dodal param id? Prev je (globalna spremeljivka)-1, next pa +1.
Obscenities in B-Flat
MrBrdo ::
kakšna globalna spremenljivka... kaj učiš krivo vero. ne uporabljat globalnih spremenljivk
MrBrdo
technolog ::
ne uporabljat globalnih spremenljivk
Kaj pa klobasaš...? Php ni namenjen namespacanju spremenljivk, čist pravilno je, če maš vse v globalnem scopu...
Vredno ogleda ...
Tema | Ogledi | Zadnje sporočilo | |
---|---|---|---|
Tema | Ogledi | Zadnje sporočilo | |
» | [PHP] branje slikeOddelek: Programiranje | 3181 (2994) | matijaz74 |
» | javascript jquey slidshow + dodatek (kako?)Oddelek: Izdelava spletišč | 798 (735) | frudi |
» | [C] kazalčni seznamOddelek: Programiranje | 3056 (2870) | MrBrdo |
» | PHP - "Generiranje" povezave za slikoOddelek: Izdelava spletišč | 790 (678) | DiTi |
» | Kako vnesti sliko v MySQL bazoOddelek: Programiranje | 1240 (1089) | McAjvar |