2016-07-02 18 views
0

Hallo Leute :) Ich bin ziemlich neu in der Programmierwelt, also brauche ich wirklich deine Hilfe. Ich habe versucht, Daten von einigen Datenbanktabellen zu bekommen, und leider geht in meiner $ .getJson() - Funktion etwas schief. Wenn ich die PHP-Datei ausführen, funktioniert es, und so mit den Funktionen von script.js. Mein HTML ist auch ok, also nehme ich an, dass es der $ get.JSON Fehler ist. Ich weiß nicht so viele Javascript, so dass ich alle meine Hoffnungen in Sie: *

html-Datei:

<!doctype html> 
<html> 
<head> 
<meta charset="utf-8" /> 
<title>jQuery Ajax - PHP</title> 
<script type="text/javascript" src="jquery.js"></script> 
</head> 
<body> 
<script src="script.js"> 
</script> 
</body> 
</html> 

script.js Datei:

$('document').ready(function() { 
           done(); 
           } 
        ); 
function done() { 
    setTimeout(function() { 
         updates(); 
         done(); 
          } 
       , 200); 
       } 
function updates(){ 
    $.getJSON("read.php", function (data){ 

     $.each(data.array, function() { 
      $("body").append("<li>Titlu: "+this['title']+"</li> 
          <li>Descriere: "+this['describtion']+"</li>"); 
            } 
          ); 

     $.each(data.array1, function() { 
      $("body").append("<li>Id: "+this['id']+"</li> 
          <li>Category_Id: "+this['category_id']+"</li> 
          <li>Titlu: "+this['title']+"</li> 
          <li>Descriere: "+this['describtion']+"</li>"); 
             } 
      ); 

    $.each(data.array2, function() { 
     $("body").append("<li>Id: "+this['id']+"</li> 
          <li>Titlu: "+this['title']+"</li> 
          <li>Latitudine: "+this['location_latitude']+"</li> 
         <li>Longitudine:"+this['location_longitude']+"</li> 
         <li>Numar de telefon: "+this['phone_number']+"</li> 
          <li>Descriere: "+this['describtion']+"</li>"); 
            } 
     ); 

    $.each(data.array3, function() { 
     $("body").append("<li>Id: "+this['id']+"</li> 
        <li>Interest_point_id:"+this['interest_point_id']+"</li> 
        <li>Pret: "+this['price']+"</li> 
        <li>Data: "+this['event1_time']+"</li>"); 
             } 
     ); 
              } 
       ); 

       } 

Und schließlich die Lese. pHP-Datei (Hier zeigt mir, was ich erwarte, so dass ich denke, alles in Ordnung ist):

<?php 
include_once ('db.php'); 
$query= "SELECT * FROM category"; 
$query1= "SELECT * FROM sub_category"; 
$query2= "SELECT * FROM interest_point"; 
$query3= "SELECT * FROM event1"; 
global $connect; 
$result = mysqli_query($connect,$query); 
$result1 = mysqli_query($connect,$query1); 
$result2 = mysqli_query($connect,$query2); 
$result3 = mysqli_query($connect,$query3); 
$array = array(); 
$array1 = array(); 
$array2 = array(); 
$array3 = array(); 

while($row=mysqli_fetch_array($result)) 
    array_push($array , array('id'   => $row[0], 
           'title'  => $row[1], 
           'describtion' => $row[2] 
)); 

while($row1=mysqli_fetch_array($result1)) 
    array_push($array1 , array('id'   => $row1[0], 
           'category_id' => $row1[1], 
           'title'  => $row1[2], 
           'describtion' => $row1[3] 

)); 
while($row2=mysqli_fetch_array($result2)) 
    array_push($array2 , array('id'    => $row2[0], 
           'title'    => $row2[1], 
           'location_latitude' => $row2[2], 
           'location_longitude'=> $row2[3], 
           'phone_number'  => $row2[4], 
           'describtion'  => $row2[5] 

)); 
while($row3=mysqli_fetch_array($result3)) 
    array_push($array3 , array( 
           'id'    => $row3[0], 
           'interest_point_id'=> $row3[1], 
           'price'   => $row3[2], 
           'event1_time'  => $row3[3] 
)); 

    echo json_encode(array("array"=>$array)).'<br>'.'<br>'; 
    echo json_encode(array("array1"=>$array1)).'<br>'.'<br>'; 
    echo json_encode(array("array2"=>$array2)).'<br>'.'<br>'; 
    echo json_encode(array("array3"=>$array3)).'<br>'.'<br>'; 


?> 
+0

"Etwas schief geht" ist keine gute Erklärung. Was läuft schief? – grochmal

+0

Bitte fügen Sie Fehlermeldungen oder Informationen aus Ihren Protokollen über den fehlgeschlagenen '$ .getJSON'-Aufruf ein. –

Antwort

1

Sie nur einmal wh echo de Senden von JSON und es kann nur ein PHP-Array geben, das alle Daten enthält. Sie können nichts außerhalb dieser wie die <br> Tags

try

Wechsel drucken
echo json_encode(array("array"=>$array)).'<br>'.'<br>'; 
echo json_encode(array("array1"=>$array1)).'<br>'.'<br>'; 
echo json_encode(array("array2"=>$array2)).'<br>'.'<br>'; 
echo json_encode(array("array3"=>$array3)).'<br>'.'<br>'; 

Um

$output = array(
    "array1"=>$array1, 
    "array2"=>$array2, 
    "array3"=>$array3 
); 

echo json_encode($output); 

Beachten Sie auch, dass <li> ein ungültiges Kind von <body> ist. Verwenden Sie <div> oder fügen Sie in eine <ul>

+0

Vielen Dank Mann :) Es funktioniert jetzt: D: D: D Gott segne dich! : * – user21553