Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [jQuery] problem z $.ajax(), nie może otrzymać odpowiedzi z serwera
onlyX
post
Post #1





Grupa: Zarejestrowani
Postów: 119
Pomógł: 0
Dołączył: 15.07.2003
Skąd: Grajewo

Ostrzeżenie: (0%)
-----


Witam!
Piszę panel administracyjny i dodaję różności za pomocą jQuery.
Wypociłem taki JS:
  1. $(document).ready(function(){
  2. var value;
  3. var key;
  4. function tdClick(eventObject){
  5. value = $(this).html();
  6. key = $(this).parent("tr").find("td:first").html();
  7. $(this).html('<form><input type="text" value="'+value+'" /></form>');
  8. var form = $(this).find("form");
  9. form.find('input').blur(inputBlur).focus();
  10. form.submit(formSubmit);
  11. $(this).unbind('dblclick', tdClick);
  12. }
  13. function inputBlur(eventObject){
  14. $(this).parent('td').dblclick(tdClick);
  15. $(this).parent('td').html(value);
  16. }
  17. function formSubmit(eventObject){
  18. $.ajax({
  19. method: "get",
  20. url: "http://localhost/test.php",
  21. data: "key=f",
  22. beforeSend: function(){alert("polecialo");},
  23. complete: function(){alert("wrocilo");},
  24. success: function(html){
  25. alert(html);
  26. },
  27. error: function(XMLHttpRequest, textStatus, errorThrown){
  28. alert(XMLHttpRequest);
  29. }
  30. });
  31. }
  32. $('#config td.val').dblclick(tdClick);
  33. });


i testowy php, dla sprawdzenia poprawności:
  1. <?php
  2. if(isset($_GET['key'])){
  3.    echo $_GET['key'];
  4. }else{
  5.    echo 'nothing';
  6. }
  7. ?>

Problem polega na tym, że JS nie dostaje żadnych danych z PHP, nie wykonuje się funkcja w polu success, natomiast beforeSend error i complete owszem.
Ścieżka w skrypcie prowadzi do właściwego pliku.
Z góry dzięki za pomoc.
Go to the top of the page
+Quote Post
bełdzio
post
Post #2





Grupa: Zarejestrowani
Postów: 690
Pomógł: 81
Dołączył: 6.04.2005
Skąd: Szczecin

Ostrzeżenie: (0%)
-----


spr czy zarowno domena strony jak i skryptu do ktorego sie odwolujesz sa takie same - zwroc uwage czy oba (nie) posiadaja przedrostek www


--------------------
Go to the top of the page
+Quote Post
onlyX
post
Post #3





Grupa: Zarejestrowani
Postów: 119
Pomógł: 0
Dołączył: 15.07.2003
Skąd: Grajewo

Ostrzeżenie: (0%)
-----


odwołanie do pliku z formularzem: http://localhost/collector/admin (korzystam z ModRewrite)
plik php: http://localhost/test.php

Wcześniej miałem obie ścieżki takie same i w PHP sprawdzałem czy zmienna istnieje w $_GET, ale to nie działało, więc dla testów wydzieliłem kod.
Go to the top of the page
+Quote Post
GrayHat
post
Post #4





Grupa: Zarejestrowani
Postów: 566
Pomógł: 18
Dołączył: 23.08.2003
Skąd: Łomża

Ostrzeżenie: (0%)
-----


Cytat(onlyX @ 28.02.2009, 19:32:50 ) *
...
$.ajax({
method: "get",
url: "http://localhost/test.php",
...


W żądaniach ajaxa nie używamy ścieżek bezwzględnych. spróbuj "/test.php"

Pozdrawiam


--------------------
*Note: No animals were killed durning the construction of this post.
Go to the top of the page
+Quote Post
batman
post
Post #5





Grupa: Moderatorzy
Postów: 2 921
Pomógł: 269
Dołączył: 11.08.2005
Skąd: 127.0.0.1




Nie method: "get", a type: "GET".


--------------------
I would love to change the world, but they won't give me the source code.
My software never has bugs. It just develops random features.
Go to the top of the page
+Quote Post
onlyX
post
Post #6





Grupa: Zarejestrowani
Postów: 119
Pomógł: 0
Dołączył: 15.07.2003
Skąd: Grajewo

Ostrzeżenie: (0%)
-----


batman: wcześniej było type, z takim samym skutkiem
GrayHat: masz rację, tak więc jeśli document.URL=http://localhost/collector/admin
to jak odnieść się do niego samego ścieżką względną?
  1. "."
  2. "/"
Go to the top of the page
+Quote Post
batman
post
Post #7





Grupa: Moderatorzy
Postów: 2 921
Pomógł: 269
Dołączył: 11.08.2005
Skąd: 127.0.0.1




Cytat(onlyX @ 28.02.2009, 21:46:33 ) *
batman: wcześniej było type, z takim samym skutkiem

I typu musi zostać, ponieważ nie ma czegoś takiego jak method w tym przypadku.


--------------------
I would love to change the world, but they won't give me the source code.
My software never has bugs. It just develops random features.
Go to the top of the page
+Quote Post
GrayHat
post
Post #8





Grupa: Zarejestrowani
Postów: 566
Pomógł: 18
Dołączył: 23.08.2003
Skąd: Łomża

Ostrzeżenie: (0%)
-----


Cytat(onlyX @ 28.02.2009, 21:46:33 ) *
batman: wcześniej było type, z takim samym skutkiem
GrayHat: masz rację, tak więc jeśli document.URL=http://localhost/collector/admin
to jak odnieść się do niego samego ścieżką względną?
  1. "."
  2. "/"


W tym wypadku bedzie to: "/collector/admin"


--------------------
*Note: No animals were killed durning the construction of this post.
Go to the top of the page
+Quote Post
onlyX
post
Post #9





Grupa: Zarejestrowani
Postów: 119
Pomógł: 0
Dołączył: 15.07.2003
Skąd: Grajewo

Ostrzeżenie: (0%)
-----


Wtedy nie będzie przypadkiem http://localhost/collector/admin/collector/admin ?
W dalszym ciągu dane nie docierają do tego samego pliku php. Gdyby docierały w odpowiedzi dostałbym jakiekolwiek dane.
Go to the top of the page
+Quote Post
GrayHat
post
Post #10





Grupa: Zarejestrowani
Postów: 566
Pomógł: 18
Dołączył: 23.08.2003
Skąd: Łomża

Ostrzeżenie: (0%)
-----


Nie będzie tak jak mówisz gdyż / (slash) na początku odwołuje się do root`a czyli domeny tongue.gif


--------------------
*Note: No animals were killed durning the construction of this post.
Go to the top of the page
+Quote Post
onlyX
post
Post #11





Grupa: Zarejestrowani
Postów: 119
Pomógł: 0
Dołączył: 15.07.2003
Skąd: Grajewo

Ostrzeżenie: (0%)
-----


Kurza twarz, w dalszym ciągu dostaję bład:
  1. function formSubmit(eventObject){
  2. $.ajax({
  3. type: "get",
  4. url: "/collector/admin",
  5. data: "key="+key+"&value="+value,
  6. beforeSend: function(){alert("polecialo");},
  7. complete: function(){alert("wrocilo");},
  8. success: function(html){
  9. alert(html);
  10. },
  11. error: function(XMLHttpRequest, textStatus, errorThrown){
  12. alert(XMLHttpRequest);
  13. }
  14. });
  15. }

PHP:
  1. <?php
  2. if(isset($_GET['key']) && isset($_GET['value'])){
  3.    echo 'dupa';
  4.    //echo $config->setOne($_GET['key'], $_GET['value']);
  5. }else{
  6. //inne echo '...';
  7. }
  8. ?>

A błąd jak zwykle jest błahy, zawsze tak jest. :/
Go to the top of the page
+Quote Post
GrayHat
post
Post #12





Grupa: Zarejestrowani
Postów: 566
Pomógł: 18
Dołączył: 23.08.2003
Skąd: Łomża

Ostrzeżenie: (0%)
-----


type: "GET" (wielkimi)


--------------------
*Note: No animals were killed durning the construction of this post.
Go to the top of the page
+Quote Post
onlyX
post
Post #13





Grupa: Zarejestrowani
Postów: 119
Pomógł: 0
Dołączył: 15.07.2003
Skąd: Grajewo

Ostrzeżenie: (0%)
-----


To nie ma sensu. Ktoś wie, jak zdebugować funkcję error, albo cały proces wysyłania? Żeby dało się prześledzić to krok po kroku.
Go to the top of the page
+Quote Post
dr_bonzo
post
Post #14





Grupa: Przyjaciele php.pl
Postów: 5 724
Pomógł: 259
Dołączył: 13.04.2004
Skąd: N/A

Ostrzeżenie: (0%)
-----


Firefox + Firebug, zakladka Net, typ "XHR" - i ci pokaze jakie ajaxowe requesty robisz i co dostajesz spowrotem.


--------------------
Nie lubię jednorożców.
Go to the top of the page
+Quote Post
onlyX
post
Post #15





Grupa: Zarejestrowani
Postów: 119
Pomógł: 0
Dołączył: 15.07.2003
Skąd: Grajewo

Ostrzeżenie: (0%)
-----


Żeby było zabawniej, jak użyję fukcji $.get(), to zwraca mi poprawne dane:
  1. function formSubmit(eventObject){
  2. alert($.get("/collector/admin/", { key: "key", value: "value" },
  3. function(data){
  4. alert(data);
  5. }
  6. ));
  7. }

I firebug to pokazuje, ale dla przykładu z $ajax(), który w dalszym ciągu nie działa, już nie chce.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 21.08.2025 - 03:18