De ce se returnează textul de răspuns?

Am o tabelă a bazei de date ale cărei câmpuri conțin coordonatele de latitudine și longitudine ale pozițiilor. Vreau să creez markeri pentru o vizualizare Google Map cu ajutorul informațiilor din baza de date.

Am implementat funcția de interogare ca

function getCords(){
  $link = connectDB();
  $query = "SELECT * FROM tour";
  $results = mysqli_query($link, $query);

  $jsonArray = array();
  while ($row = mysqli_fetch_assoc($results)){
    $jsonArray[] = array('fileName' => $row['FileName'], 'lat' => $row['Lat'], 'lon' => $row['Lon']);

  }

return json_encode($jsonArray);
}

Când apelez această funcție dintr-o pagină PHP, aceasta returnează formatul obișnuit JSON.

Problema mea este executarea unei interogări ajax. Am funcția de interogare de mai sus într-un fișier de scripturi PHP care conține șase funcții utilitare care controlează login, logout, înregistrare și altele asemenea. Pentru a interoga baza de date prin jquery, am încercat

var request = $.ajax({
  type:"GET",
  url: "includes/phpscripts.php?action=cords",
  type: "json"
});

var response = request.responseText;

Problema mea este că răspunsul este întotdeauna gol. Aceasta se datorează formării adresei URL sau din alte motive?

0
@Vega, faptul că serverul nu întoarce un răspuns este auto-explicativ, dar întrebarea mea a fost de ce.
adăugat autor Jason, sursa
Deoarece răspunsul nu este returnat de la server atunci când linia de cod este exexcuted.
adăugat autor Selvakumar Arumugam, sursa

3 răspunsuri

consultați jQuery.ajax , nu utilizați formatul corect, de aceea răspunsul este necompletat.

Operatorul de succes va returna răspunsul de la sfârșitul serverului. Deci, utilizați-l ca:

 $.ajax({
      type:"GET",
      url: "includes/phpscripts.php?action=cords",
      type: "json"
      success : function(response){
               console.log(response);
        }
   });
0
adăugat
   $.ajax({
      type:"GET",
      url: "includes/phpscripts.php?action=cords",
      dataType: 'json',//necessary, because you're sending json from server
      success: function(response) { //response will catch within success function
        console.log(response);
      }
    });

or

   var request = $.ajax({
      type:"GET",
      url: "includes/phpscripts.php?action=cords",
      dataType: 'json',//necessary, because you're sending json from server
    }).done(function(response) {
       console.log(response);
    });

NOTĂ

Instead of return json_encode($jsonArray);, use echo json_encode($jsonArray);

0
adăugat
@ thecodeparadox, am făcut modificările, iar răspunsulText încă mai revine la zero. Trecerea peste funcția de interogare arată că jsonArray este populat cu valori corecte, nu apare în Firebug.
adăugat autor Jason, sursa
Asta a fost, multumesc!
adăugat autor Jason, sursa
@KevinB Am adăugat că, arată bine? dacă nu puteți edita. vreau să învăț
adăugat autor thecodeparadox, sursa
@KevinB mulțumesc domnule, vă mulțumesc foarte mult
adăugat autor thecodeparadox, sursa
@Jason în loc de returnează json_encode ($ jsonArray); , folosiți echo json_encode ($ jsonArray);
adăugat autor thecodeparadox, sursa
@ Jason bun venit, senzație de fericit
adăugat autor thecodeparadox, sursa
de asemenea, puteți face request.done (funcția (răspuns) {console.log (răspuns);});
adăugat autor Kevin B, sursa
Adăugați-o la răspunsul dvs., nu mă deranjează. Sunt doar aici să vă ajut.
adăugat autor Kevin B, sursa
@KevinB Am vrut să scriu un alt răspuns: P .. Ceva ca request.done (console.log (request.responseText));
adăugat autor Selvakumar Arumugam, sursa

Răspunsul este gol, deoarece răspunsul nu este returnat de la server când a fost executat acea linie de cod. Încercați să setați answerText în apelul ajax. Vezi mai jos,

var response = '';
var request = $.ajax({
  type:"GET",
  url: "includes/phpscripts.php?action=cords",
  type: "json"
}).done (function (data) {
   console.log(data); //json object as jQuery converts it for you
   console.log(request.responseText); //string text as returned the server.
   response = request.responseText; 
   //^-- response is a string text as returned the server.
});

DEMO: http://jsfiddle.net/hUY6v/

0
adăugat
JavaScript, România - Moldova
JavaScript, România - Moldova
328 participanți

Comunitatea Română JavaScript: github.com/js-ro Pentru confort, opriți notificările. Parteneri: @node_ro, @php_ro, @python_ro, @seo_ro, @RomaniaGroup, @ai_ro, @Grupuri_IT Offtop: @holywars_ro Joburi: @js_jobs_ro Sponsored with ❤️ by ciupacabra.com

MySQL - comunitatea Română
MySQL - comunitatea Română
19 participanți

Comunitatea română a programatorilor MySQL.