AJAX adatkérés php-ből?
Üdv ismét, már sok ilyen kérdésem volt, de azokat a problémákat sikerült kiküszöbölnöm, viszont ismét akadt egy. Szóval, készítek egy oldalt, ahol ugyebár lehet posztolni és azokra szavazni 'like' illetve 'dislike' alapján. Nos, azt már megcsináltam, hogy lehessen szavazni, fel is kerül az adatbázisba a szavazat, meg is jeleníti, hogy mire szavazott, viszont alatta van egy számláló, hogy mennyi dislike és like van az adott poszton és ha kattint, a számot csak akkor növeli (esetleg csökkenti), ha frissíti az oldalt. Először úgy akartam ezt a problémát megoldani, hogy JS-el módosítom a számot a kattintásnak megfelelően, de ajánlották a JSON-t, ezért most úgy akarom megcsinálni, hogy nem a kattintásnak megfelelően frissíti, hanem ha kattintott akkor php ből újra lekérem a lájkok számát és jsonal ezt javascriptbe, onnan pedig kiírom. Nos, ebben akadtam el. Megmutatom a kódomat, és remélem tudtok segíteni! :D
JAVASCRIPT: (ebből a JSON rész) (Az alertok csak tesztelésből vannak, az ajaxnál a like+a-ból az a az a poszt id, ami azt azonosítja, melyikre kattintott)
$.ajax({
type: "POST",
dataType: "json",
url: "files/like_szam.php",
success: function( response ){
alert(response.like+a);
},
error: function( error ){
alert( error );
}
});
PHP:
$data_array = array();
DB_connect(HOST, USER, PASSWORD, DB, CHARSET);
$post_query = DB_query("SELECT * FROM `posztok`");
if(DB_num_rows($post_query) != 0){
while($rows = DB_fetch_assoc($post_query)){
$table[] = $rows;
}
}
foreach($table as $n){
$poszt_id = $n["id"];
$check_like = DB_query("
SELECT * FROM `szavazatok` WHERE `poszt_id`='$poszt_id' && `szavazat`=1
");
$like = DB_num_rows($check_like);
$data_array['like'.$poszt_id] = $like;
echo json_encode($data_array);
DB_close();
}
Nézd meg, hogyan kell értelmesen lekérdezni az ajax error-t. A jquery oldalon vannak példák.
Az ellenőrzést ne alert-tel irasd ki, hanem dobd a konzolba console.log-gal. Itt objecteket is meg tud jeleníteni a böngésző, és máris közelebb leszel a megoldáshoz.
A visszatérési értéknél nem tudom mi az az "a" változó a "response.like+a" kifejezésben, de sehol nincs deklarálva.
Nyugodtan átadhatsz több elemű tömböt is pl: json_encode(array("post_id" => 12, "like" => 1234))
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
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!