Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [JavaScript][AJAX][PHP]Przesłanie array przez ajax
xSebaPL
post 26.01.2016, 01:34:23
Post #1





Grupa: Zarejestrowani
Postów: 61
Pomógł: 0
Dołączył: 28.11.2014

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


Witam wszystkich, otóż mam problem ze skryptem na przesłanie tablicy. Otóż nie chce działać

Tak wygląda javascript
  1. $("#test").text("Fuck yeah!");
  2. $("#wyszukiwanaFraza").autocomplete({
  3. source: function(request, response) {
  4. $.ajax({
  5. method: "post",
  6. url: "functions/getMovieList.php",
  7. dataType: "json",
  8. success: function(data) {
  9. response(data);
  10. $("#test").text(data);
  11. },
  12. error: function(obj,text,error) {
  13. $("#test").text(text + ": " + error);
  14. }
  15. });
  16. },
  17. change: function(event, data) {
  18. $("#test").text(data);
  19. }
  20. });


a tak wygląda php:
  1. <head><script src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.0/jquery.min.js"></script></head>
  2. <?
  3. include("../config.php");
  4. db_connect();
  5. $movies = mysql_query("SELECT NAME, ID FROM movies");
  6. $moviesList = mysql_fetch_assoc($movies)
  7. header('Content-Type: application/json');
  8. echo json_encode($moviesList);
  9. db_close();
  10. ?>


Okej teraz chciałbym wytłumaczyć jak skrypt się zachowuję. Otóż gdy wczytuję całą stronę z linka, i wpisuję coś w wyszukiwarkę, to nic się nie dzieje. Dopiero gdy odświeżę stronę za pomocą odnośnika na stronie(że przejścia na stronę główną) to wtedy po wpisaniu coś w wyszukiwarkę wyświetli się taki błąd:
Kod
parsererror: SyntaxError: Unexpected token <

Natomiast wtedy jako odpowiedź wyszukania zwraca:
Kod
[object Object]


Jak nie możecie zrozumieć co próbuje wytłumaczyć że się dzieje, to mogę dać linka do strony na której to wszystko testuję, ale proszę pomóżcie bo męczę się z tym już jakieś kilka dni sad.gif
Go to the top of the page
+Quote Post
LowiczakPL
post 26.01.2016, 08:44:29
Post #2





Grupa: Zarejestrowani
Postów: 531
Pomógł: 55
Dołączył: 3.01.2016
Skąd: Łowicz

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


w pliku PHP masz kod HTML a przecież plik PHP ma zwracać czystego JSONA do strony

nagłowki ustawiasz kodem header('Content-Type: application/json');

więc ten JQYERY psuje <head><script src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.0/jquery.min.js"></script></head>

Ten post edytował LowiczakPL 26.01.2016, 08:46:13


--------------------
Szukam zleceń Symfony, Laravel, Back-End, Front-End, PHP, MySQL ...
Go to the top of the page
+Quote Post
xSebaPL
post 26.01.2016, 15:16:29
Post #3





Grupa: Zarejestrowani
Postów: 61
Pomógł: 0
Dołączył: 28.11.2014

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


Czy jest czy go nie ma wyskakuje ten sam błąd
Go to the top of the page
+Quote Post
nospor
post 26.01.2016, 15:23:33
Post #4





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Zobacz co ci zwraca twoj ajax dokladnie, np. uzywajac Firebug w Firefox

ps: $moviesList = mysql_fetch_assoc($movies) - brakuje srednika na koncu
ps2: $moviesList = mysql_fetch_assoc($movies) - zdajesz sobie sprawe, ze to zwraca tylko pierwszy film a nie cala liste?


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
xSebaPL
post 26.01.2016, 16:10:12
Post #5





Grupa: Zarejestrowani
Postów: 61
Pomógł: 0
Dołączył: 28.11.2014

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


  1. while ($moviesList = mysql_fetch_assoc($movies)) {
  2. $moviesList2[] = $moviesList;
  3. }
  4. echo json_encode($moviesList);


Czy tak zwróci całą tablice?


A co do tego co ajax zwraca to chodzi ci o to?
Go to the top of the page
+Quote Post
nospor
post 26.01.2016, 16:11:21
Post #6





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




znajdz 10 roznic
$moviesList2
$moviesList

Co do obrazka, to tak, o tym wlasnie mowilem


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
xSebaPL
post 26.01.2016, 16:40:16
Post #7





Grupa: Zarejestrowani
Postów: 61
Pomógł: 0
Dołączył: 28.11.2014

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


Kurde nie jestem aż tak spostrzegawczy, potrafię wypatrzeć tylko jedną różnicę. Dobra mam, w jsonie nie zamieniłem tego. A tak ogólnie to ajax już zwraca tablicę ale dalej wyświetla błąd sad.gif

Ten post edytował xSebaPL 26.01.2016, 16:42:58
Go to the top of the page
+Quote Post
nospor
post 26.01.2016, 16:48:47
Post #8





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




10 roznic to tylko nazwa takiej zabawy... tak, tutaj miales znalezc tylko jedna....

zapisujesz filmy do $moviesList2 a wyswietlasz $moviesList...

Pokaz dokladnie kod jaki masz, oraz pokaz dokladnie co ci zwraca ajax w przegladarce, oraz jaki jest teraz blad


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
xSebaPL
post 26.01.2016, 16:51:24
Post #9





Grupa: Zarejestrowani
Postów: 61
Pomógł: 0
Dołączył: 28.11.2014

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


Sory, zedytowałem post. Zamieniłem to i zwraca funkcja już normalnie tablice. Ale błąd pozostał. Wydaje mi się że on ma jakiś związek z tym że wyszukiwarka nic nie wyświetla zanim się strony nie odświeży z odnośnika na stronę główną
Go to the top of the page
+Quote Post
nospor
post 26.01.2016, 16:51:47
Post #10





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Pokaz dokladnie kod jaki masz, oraz pokaz dokladnie co ci zwraca ajax w przegladarce, oraz jaki jest teraz blad


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
xSebaPL
post 26.01.2016, 16:59:14
Post #11





Grupa: Zarejestrowani
Postów: 61
Pomógł: 0
Dołączył: 28.11.2014

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


Heh, a więc tak:
searchOptions.php
  1. <head><script src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.0/jquery.min.js"></script>
  2. <script src="//code.jquery.com/ui/1.11.4/jquery-ui.js"></script></head>
  3. Wyszukaj:<br>
  4. <input id="wyszukiwanaFraza" type="text" value="">
  5. <div id="test"></div>
  6. <div id="test2"></div>
  7.  
  8. <script>
  9. $("#wyszukiwanaFraza").autocomplete({
  10. source: function(request, response) {
  11. $.ajax({
  12. method: "post",
  13. url: "functions/getMovieList.php",
  14. dataType: "json",
  15. success: function(data) {
  16. response(data);
  17. $("#test").text(data);
  18. },
  19. error: function(obj,text,error) {
  20. $("#test").text(text + ": " + error);
  21. }
  22. });
  23. },
  24. change: function(event, data) {
  25. $("#test2").text(data);
  26. }
  27. });
  28. </script>


getMovieList.php
  1. <?
  2. header('Content-Type: application/json');
  3. include("../config.php");
  4. db_connect();
  5. $movies = mysql_query("SELECT NAME, ID FROM movies");
  6. while ($moviesList = mysql_fetch_assoc($movies)) {
  7. $moviesList2[] = $moviesList;
  8. }
  9. echo json_encode($moviesList2);
  10. db_close();
  11. ?>


To zwraca ajax w network:


a tak wygląda aktualnie błąd w przeglądalce:
Go to the top of the page
+Quote Post
nospor
post 26.01.2016, 17:08:48
Post #12





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




A co robi ta funkcja response(data); ?

A, niewazme, kod i tak wchodzi tutaj
$("#test").text(text + ": " + error);
czyli do error...

A nie ma tam zadnych bialych znakow w response?
No i co z tym kodowanie masz nie tak bo zamiast polskich liter widze '?'


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
xSebaPL
post 26.01.2016, 17:18:32
Post #13





Grupa: Zarejestrowani
Postów: 61
Pomógł: 0
Dołączył: 28.11.2014

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


Co do response
http://api.jqueryui.com/autocomplete/#option-source
A response callback, which expects a single argument: the data to suggest to the user.
Odpowiedź która oczekuje pojedyńczego argumentu: dane do zaoferowania użytkownikowi. - że funkcja zwrotna z tymi wynikami z bazy danych

Cytat
No i co z tym kodowanie masz nie tak bo zamiast polskich liter widze '?'


Nie wiem, jak pierwszy post dodałem do bazy danych to zamieniło polskie znaki na ?. Potem pisałem bez nich.


Mogę jeszcze pokazać baner z index bo jak wspominałem skrypt nie działa po normalnym załadowaniu strony, dopiero po wczytaniu za pomocą baneru...

Ten post edytował xSebaPL 26.01.2016, 17:24:44
Go to the top of the page
+Quote Post
nospor
post 26.01.2016, 17:25:23
Post #14





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Wywal te schrzanione rekordy. Jesli nadal nie bedzie dzialac to poraz kolejny pytam sie o biale znaki w response.


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
xSebaPL
post 26.01.2016, 17:39:27
Post #15





Grupa: Zarejestrowani
Postów: 61
Pomógł: 0
Dołączył: 28.11.2014

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


Mówiąc rekordy masz na myśli to co dodałem do bazy danych? A to przypadkiem nie spowoduje że wyszukiwarka nie będzie miała z czego wyszukiwać?


A co do białych znaków w response to przecież do response przypisuję tą tabelke z bazy danych która zawiera spacje w nazwach filmów.
Go to the top of the page
+Quote Post
nospor
post 26.01.2016, 17:44:07
Post #16





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Mowilem o schrzanionych rekordach a nie o wszystkich
Mowiac biale znaki mam na mysli biale znaki przed JSON a nie w srodku JSON.

A wracajac do response...
Cytat
Co do response
http://api.jqueryui.com/autocomplete/#option-source
A response callback, which expects a single argument: the data to suggest to the user.
Odpowiedź która oczekuje pojedyńczego argumentu: dane do zaoferowania użytkownikowi. - że funkcja zwrotna z tymi wynikami z bazy danych
Wywal prosze z kodu to response() i przeczytaj jeszcze raz uwaznie linka co mi podeslales. Nie mam sily dzis juz tego tobie tlumaczyc


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
xSebaPL
post 26.01.2016, 18:02:29
Post #17





Grupa: Zarejestrowani
Postów: 61
Pomógł: 0
Dołączył: 28.11.2014

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


Raczej nie widzę tam żadnych białych znaków, jedyne to właśnie w środku jsona o którym wspominałem wczesniej
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 Wersja Lo-Fi Aktualny czas: 18.07.2025 - 15:28