Kedvenc mentése ajax-al
2013-11-09T20:50:01+01:00
2013-11-10T11:58:07+01:00
2022-07-18T21:33:33+02:00
geforce9600
Sziasztok

Egy kutya adatlapját nézem. Ha a user be van lépve, és ez az ID még nincs elmentve kedvencnek, akkor megjelenik egy űrlap és egy gomb amivel elrakjuk kedvencnek a kutyát. Köszönöm

A javascript-es rész szeintem jó(javítsatok ki ha nem), a php-résznél az nem oké, hogy most hogyan is adom meg a post adatokat az inserthez?

if(isset($_SESSION['user_logged_in'])) { $is_favorite = mysqli_query($kapcs, "SELECT * FROM kedvenc WHERE session_user_id='".$_SESSION['user_logged_in']['id']."' AND kutya_id='$dog_id' LIMIT 1"); if(mysqli_num_rows($is_favorite) == 0 ) { echo ' <form id="add_to_favorite_form" method="post"> <input type="hidden" value="'.$data['id'].'" id="dog_id" name="dog_id" /> <input type="hidden" value="'.$_SESSION['user_logged_in']['id'].'" id="u_id" name="u_id" /> <input type="submit" class="add_to_favorites" id="add_to_favorites" value="Kedvencek közé" /> </form> '; } }


$('#add_to_favorites').click(function(e) { e.preventDefault(); $.ajax ({ url: 'files/add_favorite.php', type: 'POST', data: { session_user_id: $('input[name=u_id]').val(), kutya_id: $('input[name=dog_id]').val(), }, success: function (data) { alert("Elmentve a kedvencek közé."); } }); return false; });


<?php $check_favorite = mysqli_query($kapcs, "SELECT * FROM kedvenc WHERE session_user_id='".$_SESSION['user_logged_in']['id']."' AND kutya_id='".$_POST['dog_id']."' LIMIT 1"); if(mysqli_num_rows($check_favorite) == 0 ) { $add_favorite = mysqli_query($kapcs, "INSERT INTO kedvenc(session_user_id, kutya_id) VALUES('".$_SESSION['user_logged_in']['id']."','".$_POST['dog_id']."' )") or die("Adding favorite error..".mysqli_error($kapcs)); } ?>
Mutasd a teljes hozzászólást!
na közben rájöttem, a from action fájlban nemvolt connect.php include-olva.

Az ajax-on is módosítottam kicsit. Hogy is irassam ki normálisan, hogy minden oké, vagy volt valami hiba közben?

$('#add_to_favorites').click(function(e) { e.preventDefault(); $.ajax ({ url: 'files/add_favorite.php', type: 'POST', data: { session_user_id: $('input[name=u_id]').val(), kutya_id: $('input[name=dog_id]').val(), }, success: function (data) { var result = $.trim(data); alert(result); } }); return false; });
Mutasd a teljes hozzászólást!

  • $_POST['kutya_id']
    Mutasd a teljes hozzászólást!
  • Csak kijön az alert, de a táblába nem kerül semmi, php se ad hibaüzenetet.
    Mutasd a teljes hozzászólást!
  • Gyorsan átfutva a kódot több dolgot sem értek így hirtelen.
    Először lekérdezel egy session id és egy dog id-re.
    Ha nincs találat, létrehozod a formot.
    A formba miért nem a $dog_id kerül, miért a $data['id']?

    A session kezelésed is furcsa. Ha szerver oldalon végig kezeled a sessiont, nem kell elpostolni. Ha elpostolod, utána már az id-d POST tömbben lesz és onnan is kell kivenni:
    $_POST['kutya_id']
    $_POST['session_user_id']

    Böngészővel ellenőrizd, mi van a postban!
    Mutasd a teljes hozzászólást!
  • A $dog_id és a data['id'] az ugyanaz.

    Viszont igencsak fáradt és álmos vagyok, nemértem a többi kérdésed, és a session-ös dolgot.
    Mutasd a teljes hozzászólást!
  • na közben rájöttem, a from action fájlban nemvolt connect.php include-olva.

    Az ajax-on is módosítottam kicsit. Hogy is irassam ki normálisan, hogy minden oké, vagy volt valami hiba közben?

    $('#add_to_favorites').click(function(e) { e.preventDefault(); $.ajax ({ url: 'files/add_favorite.php', type: 'POST', data: { session_user_id: $('input[name=u_id]').val(), kutya_id: $('input[name=dog_id]').val(), }, success: function (data) { var result = $.trim(data); alert(result); } }); return false; });
    Mutasd a teljes hozzászólást!
  • Ráklikk:
    Chrome f12>Network fül->postolt fájlban milyen adat van...
    Mutasd a teljes hozzászólást!
  • Már oké, connect hiányzott a feldolgozó fájlból.

    $('#resultDIV').hide(); $('#overlay').hide(); $('#add_to_favorites').click(function(e) { e.preventDefault(); $.ajax ({ url: 'files/add_favorite.php', type: 'POST', data: { session_user_id: $('input[name=u_id]').val(), kutya_id: $('input[name=dog_id]').val(), kutya_neve: $('input[name=dog_name]').val() }, success: function (data) { var result = $.trim(data); //alert(result); $('#overlay').css('opacity', 0.6); $('#overlay').fadeIn('slow'); $('#resultDIV').fadeIn('slow'); $('#resultDIV').html(result); setTimeout(function() { $('#resultDIV').fadeOut('slow'); $('#overlay').fadeOut('slow'); $('#add_to_favorite_form').fadeOut('slow'); }, 3000); } }); return false; });
    Mutasd a teljes hozzászólást!
abcd