Skocz do zawartości
"Idzie nowe..." - o zmianach i nie tylko ×
Przeniesienie zakupów z IPS Marketplace / Moving bought items from IPS Marketplace ×

Mały problem z AJAX.


wilkolak11

Rekomendowane odpowiedzi

Witajcie,

mam problem z wywołaniem AJAX w aplikacji.

 

Kod JavaScript poniżej.

 

jQuery("input[name=submitForm]").click(function() {	
					new Ajax.Request( "{parse url="app=gamecp&module=ajax&section=admin&do=penalty&md5check={$this->member->form_hash}" base="public"}",
					{
						method: 'post',
						evalJSON: 'force',
						parameters: {
							'uid': jQuery("select[name=uid]").val(),
							'gid': jQuery("input[name=gid]").val(),
							'type': jQuery("select[name=type]").val(),
							'value': jQuery("input[name=value]").val(),
							'reason': jQuery("input[name=reason]").val()
						},
						onSuccess: function(transport) {
							var response = transport.responseText || "Brak odpowiedzi";
							console.log("Debug! \n\n" + response);
						},
						onFailure: function() { 
							alert('Coś nie pykło...'); 
						}
					});					
				});

 

Problem polega na tym, że gdy odwołuję się do tego adresu to do konsoli zwraca mi kod z templatki domyślnej aplikacji "gamecp". Jak powinienem prawidłowo zwracać dane w funkcji "penalty" (jak widać w linku), abym mógł je otrzymać z powrotem (transport.responseText)?

 

Wcześniej, gdy odwoływałem się do tego adresu zwracało mi kod templatki IPB "Strona nie istnieje". Jednak, gdy odwoływałem się do prostego pliku PHP, gdzie była tylko linijka " echo 'ajax'; " to otrzymywałem to w callbacku onSucces w "transport.responseText".

 

Dodatkowo - jest możliwość, że te wyniki zapisują się gdzieś w pamięci podręcznej? Mam wrażenie, że zapisuje pliki, odświeżam i zmiany są dopiero po jakimś czasie.

 

Chyba, że w ogóle robię coś źle. Proszę o poradę.

Odnośnik do komentarza
Udostępnij na innych stronach

Przepraszam za post pod postem, ale trochę zmieniłem. Zerknąłem jak to jest zrobione w IP.Board i sprawdziłem czy z tamtego modułu będą zwracane dane.

 

new Ajax.Request( ipb.vars['base_url'] + "app=gamecp&section=admin&module=ajax&do=penalty&md5check=" + ipb.vars['secure_hash'],
					{
						method: 'post',
						evalJSON: 'force',
						parameters: {
							'uid': jQuery("select[name=uid]").val(),
							'gid': jQuery("input[name=gid]").val(),
							'type': jQuery("select[name=type]").val(),
							'value': jQuery("input[name=value]").val(),
							'reason': jQuery("input[name=reason]").val()
						},
						onSuccess: function(t) {
							if( Object.isUndefined( t.responseJSON ) )
							{
								// Well, this is bad.
								alert("Invalid response returned from the server");
								return;
							}
							
							if( t.responseJSON['error'] )
							{
								alert(t.responseJSON['error']);								
								return false;
							}
							
							if( t.responseText != "[]" )
							{							
								alert(t.responseJSON);
							}
						},
						onFailure: function() { 
							alert('Coś nie pykło...'); 
						}
					});

 

W PHP:

 

public function penalty()
{
		$this->returnJsonArray( array( 'status' => 'ok' ) );
}

 

Jeśli się odwołuję do:

new Ajax.Request( ipb.vars['base_url'] + "app=gamecp&section=admin&module=ajax&do=penalty&md5check=" + ipb.vars['secure_hash'],

to otrzymuję komunikat "Invalid response returned from the server", jednak jeśli odwołam się do: (przykładowo z kodu IPB)

 

new Ajax.Request( ipb.vars['base_url'] + "app=core&section=sharelinks&module=ajax&do=savePostPrefs&md5check=" + ipb.vars['secure_hash'],

to otrzymuję dane.

 

Podkreślam, że żądanie Ajax wywołuję w templatce od profilu użytkownika IPB.

 

Odnośnik do komentarza
Udostępnij na innych stronach

Sprawdziłem jeszcze między modułami w aplikacji. Gdy tworzę żądanie Ajax w bicie należącym do aplikacji i odwołuję się do tej samej aplikacji to wszystko jest ok. Czyli można rzec, że w aplikacji jest w stanie odebrać dane. Problem pojawia się, gdy tworzę żądanie w profileTabs i odwołuję się do pliku z aplikacji, to danych zwrotnych nie otrzymuję. Czy ktoś wie jak temu poradzić?

Odnośnik do komentarza
Udostępnij na innych stronach

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.

Zarejestruj nowe konto

Załóż nowe konto. To bardzo proste!

Zarejestruj się

Zaloguj się

Posiadasz już konto? Zaloguj się poniżej.

Zaloguj się
  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...

Powiadomienie o plikach cookie

Umieściliśmy na Twoim urządzeniu pliki cookie, aby pomóc Ci usprawnić przeglądanie strony. Możesz dostosować ustawienia plików cookie, w przeciwnym wypadku zakładamy, że wyrażasz na to zgodę.