Kezdőoldal » Számítástechnika » Weblapkészítés » Like|Unlike - Dislike|Undislik...

Like|Unlike - Dislike|Undislike készítés? :D

Figyelt kérdés
Tudnátok segíteni, hogyan lehetne egy olyat készíteni, hogy ha például likeolok akkor ugrik a számláló egyel, ha még egyszer likeolok akkor vissza ugrik egyet, ha likeolva van de a dislike-ra megyek akkor a like-om ugrik és helyette dislikeolva lesz stb. Köszi előre is, google-on kerestem de sehol nem találtam

2015. aug. 12. 13:03
 1/10 anonim ***** válasza:
MySQL + PHP + QUERY -k és IF -ek. :-)
2015. aug. 12. 14:17
Hasznos számodra ez a válasz?
 2/10 anonim ***** válasza:
jó látni téged tibi. Mindig segítőkész vagy és sose bunkó. keep it.
2015. aug. 12. 14:37
Hasznos számodra ez a válasz?
 3/10 anonim válasza:
írj privátot, talán tudok segíteni
2015. aug. 13. 11:37
Hasznos számodra ez a válasz?
 4/10 anonim ***** válasza:

#2 mondhattam volna az is hogy állás/munka kategória. :-)

De ugye ha nem tudjuk mihez kell, mi van készen, merre indult el, merre tudnánk vezérleni, nem igen lehet mást hogy segíteni. :-)

2015. aug. 13. 11:49
Hasznos számodra ez a válasz?
 5/10 A kérdező kommentje:

Nos, megcsináltam Tibi alapelvén nagyjából, de ismét elakadtam. :D Eddig ott vagyok, hogy van két gomb, az egyik a tetszik a másik a nem tetszik. Mindegyiken van egy onclick ami a szavaz függvényt hívja kattintáskor, a paraméterei a következők: poszt_id (tudja, hogy melyik posztra szavaz), 1 vagy 2 (tetszik-e neki: 1, nem tetszik: 2), és a this.id, ami tetszik esetében: tetszik_posztid (pl 66), nem tetszik esetében: nemtetszik_posztid (pl 58). Tehát így néz ki pl a tetszik:

<div class="voter_button <?php if(isset($color_like_id) && $color_like_id == $poszt_id){ echo "like_voted"; } ?>" id="tetszik_<?php echo $poszt_id; ?>" onclick="szavaz(<?php echo $poszt_id; ?>, 1, this.id);">Tetszik</div>

Ha elküldi, akkor ugye meghívja a szavaz függvényt, ami átveszi a paramétereket. Jelenesetben a poszt_id az "a" lesz, a szavazás azonosítója (tetszik/nemtetszik) a b lesz és a this.id pedig a c lesz. A JS úgy néz ki, hogy elküldés előtt átírja az elem tartalmát (amire rákattintott) töltésre, elküldi ajaxal a feldolgozónak az a-t(poszt_id) illetve a b-t(tetszik/nem_tetszik), majd ha sikeres, akkor leszedi a töltés-t és vissza írja az eredeti szöveget (tetszik/nem tetszik). A feldolgozó annyit tesz, hogy fogadja POST tömbben az adatokat, majd egy jó hosszú algoritmus alapján (nagy if-else if ágazat az egész :D) eldönti, hogy mi történt, tetszik-e vagy sem, és beírja a szavazatot táblába. A tábla ezekből az oszlopokból áll:

poszt_id, szavazo, szavazat, szavazat_ideje. Az algoritmus így néz ki: Ha igennel szavaz: Ha már szavazott arra a posztra igennel, akkor törölje, különben Ha már szavazott arra a posztra nemmel, törölje a dislike-ot és like-olja, különben ha nem szavazott egyikre se, like-olja.

Ha nemmel szavaz: Ha már szavazott arra a posztra nemmel, akkor törölje, különben ha már szavazott arra a posztra igennel, akkor törölje a like-ot és dislike-olja, különben ha nem szavazott egyikre se, dislike-olja.

A div-nél a php-s isset ellenőrzéssel hozzá adom a class-ot ahhoz, amelyikre szavazott. Pl, ha nemmel szavazott, akkor a Nem tetszik div-nek piros lesz a backgroundja. Ha tetszikkel szavazott, akkor a Tetszik div-nek zöld lesz a backgroundja. Igen ám, de ez csak frissítés után működik, ezért még a JS-hez, amikor bekövetkezik az Onclick és meghívja a szavaz függvényt, írtam szintént egy if-else ágat, ami így néz ki: Ha tetszik: Ha a tetsziken rajta van a tetszik class, akkor szedje le róla, különben adja hozzá. Ha a nem tetsziken rajta van a nem tetszik osztály, akkor szedje le róla és a tetszikhez adja hozzá a tetszik osztályt.

Ha nem tetszik: Ha a nem tetsziken rajta van a nem tetszik osztály, akkor szedje le róla, különben adja hozzá. Ha a tetsziken rajta van a tetszik osztály, akkor szedje le róla és a nem tetszikhez adja hozzá a nem tetszik osztályt.

Dióhéjban ennyi lenne a működése :D

2015. aug. 13. 14:25
 6/10 A kérdező kommentje:
Ja, és ott akadtam el, hogy írtam hozzá egy számlálót, ami nem nagyon működik. Azaz php lekérdez a táblából a WHERE-ben azonosítom, hogy a lájkokat kérném és a kapott sorok száma ugyebár a lájkok. Ezt ki is írja, de itt is ugyanúgy meg szeretném csinálni, hogy ne keljen frissíteni, ha a júzer rákattint valamelyikre. Gondolom 90%, hogy itt is JS. A location.reload-dal ne gyertek, mert az nem jó, ugyanis van egy olyan funkcióm, hogy csak az első 10-et posztot listázza ki, és úgy tud a júzer tovább olvasni, ha rákattint a több posztra. De ezután is csak 10-et tölt be (Ezt azért írtam, ha nagy lenne a forgalom, ne terhelődjön túl sok poszt esetén). Na mindegy, nem ez a lényeg, hanem az, hogy ha a 105. posztnál tart és lájkol akkor ugyebár reloadolja az oldalt és vissza ugrik az elejére. Hashtaggel sem lehet megoldani, mert még nem töltötte be a posztot akkor hová ugorjon?!... Magyarán akkor JS-el kéne megírni ugyan úgy, mint ahogy a JS eldönti, hogy melyik classot adja az elemnek, csak itt a tartalmat kéne növelni egyel.
2015. aug. 13. 14:31
 7/10 anonim ***** válasza:

jQuery + JSON.

A Szavazáskor JSON -ba vissza adodd az adatokat, változásokat.

És jQuery -vel azok értékeit cseréled.

[link]

2015. aug. 13. 15:00
Hasznos számodra ez a válasz?
 8/10 anonim ***** válasza:
(akár még ütemezheted is, hogy x másodpercenként lekérje az aktuális adatokat, így oldal újra töltése nélkül folyamatosan frissülne, aktualizálódna, és ha más nyom közben rá, azt te is látod)
2015. aug. 13. 15:01
Hasznos számodra ez a válasz?
 9/10 A kérdező kommentje:
Köszönöm! :)
2015. aug. 13. 15:05
 10/10 anonim ***** válasza:
És úgy lehet továbbfejleszteni, hogy egy IP-ről (vagy legalább egy munkamenetről) egy cikknél csak egy ilyen "actiont" engedjen.
2015. aug. 13. 18:47
Hasznos számodra ez a válasz?

Kapcsolódó kérdések:




Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!