Ajax w aplikacji Zend Framework

0

Witam,
Jquery uzywam od niedawna wiec prosze nie przesadzajcie z krytyka. W kazdym razie robie tak dla cwiczen taka mala podrobke facebooka. I mam funkcje lajkowania do ktorej uzywam ajaxa. Oto jak to wyglada

function like(){
	
	$.ajax({


    url: "like",



    data: {

        name: $(this).attr("name") 

    },

 

    type: "POST",

 

	success: function() {

	alert("Success") ;
	
	  if($(this).css('background-color') == 'bule')
		this.css('background-color','white') ;

		else this.css('background-color','blue') ;


	  },

  

   error : function() {

    alert( "Sorry, there was a problem!" );

    console.log( "Error: " + errorThrown );

    console.log( "Status: " + status );

    console.dir( xhr );

  }


  });
}

I tutaj mam action ktora wpisalam jako url


 public function likeAction()
    {
		$db = new Application_Model_Database();
		$db->dodajlika($_POST['name']) ;
    }

public function dodajlika($id){
		
		$polaczenie = new mysqli("localhost","root","","facebook") ;
		
		$idu = $_SESSION['ja'] ;
		
		$r = $polaczenie->query("SELECT * FROM liki WHERE iduzytkownika = '$idu' AND idposta = '$id' ") ;
		
		if($r->num_rows>0){
			 $polaczenie->query("DELETE FROM liki WHERE iduzytkownika = '$idu' AND idposta = '$id'") ;
			 
			 $polaczenie->query("UPDATE posty SET liki = liki - 1 WHERE id = '$id' ") ;
			 
		}else {
			
			$polaczenie->query("INSERT INTO liki (iduzytkownika,idposta) VALUES('$idu' ,'$id')") ;
			 
			 $polaczenie->query("UPDATE posty SET liki = liki + 1 WHERE id = '$id' ") ;
		}
		
	}

I moj problem jest taki ze nic sie niedzieje. Nie ma bledow. Ale po kliknieciu przycisku nic sie nie dzieje.
Dziekuje za pomoc.

0

ani sukces ani error? to może w ogóle nie wywołujesz tej funkcji. pokaż html + więcej JS.

i jeszcze jedno - skoro zaczynasz z programowaniem to od razu ucz się dobrych nawyków i nie pisz kodu po polsku, nie nazywaj po polsku zmiennych, tabel w bazie itd.
poza tym masz od cholery dziur i brzydkich rzeczy, literówek i niedopilnowań w tym kodzie, ale powiedzmy, że teraz się zajmiemy głównym problemem.

0

Okey, następnym razem będę nazywać zmienne po angielsku. Weszlam w html + więcej JS ale żaden blad się nie pokazal.

1

Jak wkleisz funkcję like w konsolę i ją wywołasz to "zadziała" - wyświetli się alert błędu. Otwórz narzędzia developerskie, wejdź w zakładkę "sieć" i zobacz status requesta, rodzaj odpowiedzi itp - jak tam bedzie ok to weź się za poprawki js:

this.css('background-color','white'); - nie ma czegoś takiego, alobo this.style.backgroundColor = 'white' albo $(this).css('background-color','white').

error : function() {

    alert( "Sorry, there was a problem!" );

    console.log( "Error: " + errorThrown );

    console.log( "Status: " + status );

    console.dir( xhr );

}

A gdzie argumenty? Odwołujesz się do nieistniejących zmiennych, powinno być:

error : function(xhr, status, errorThrown) {

    alert( "Sorry, there was a problem!" );

    console.log( "Error: " + errorThrown );

    console.log( "Status: " + status );

    console.dir( xhr );

}

1 użytkowników online, w tym zalogowanych: 0, gości: 1