2015-06-01 60 views
0

在課程中,我學習如何通過JSON/AJAX將結果從sql請求傳遞給js。我需要在我的js中這個請求的行的值,但它不起作用。通過控制檯我有一個錯誤:未捕獲的SyntaxError:意外的PHP的令牌<通過JSON將變量從php傳遞給js

部分:

<?php 
//get all the course from db and reply using json structure 
//connection to db 
$mysqli = new mysqli("localhost", "root", "", "my_hyp"); 
$id = $_POST['id']; 
if (mysqli_connect_errno()) { //verify connection 
    exit(); //do nothing else 
} 
else { 


    # extract results mysqli_result::fetch_array 
    $query = " SELECT * FROM course WHERE course_category='$id'"; 
    //query execution 
    $result = $mysqli->query($query); 
    //if there are data available 
    if($result->num_rows >0) 
    { 
     $myArray = array();//create an array 
     while($row = $result->fetch_array(MYSQL_ASSOC)) { 
      $myArray[] = array_map('utf8_encode', $row); 
     } 
     $response = array();   
     $response['rows'] = $row; 
     $response['query'] = $myArray; 
     echo json_encode($response); 
    } 

    //free result 
    $a=num_rows; 
    $result,$a->close(); 

    //close connection 
    $mysqli->close(); 
} 



?> 

腳本的第一部分:

$.ajax({ 
     method: "POST", 
     //dataType: "json", //type of data 
     crossDomain: true, //localhost purposes 

     url: "./query/cate_has_courses.php", //Relative or absolute path to file.php file 
     data: {id: i}, 
     success: function(response) { 
      console.log(JSON.parse(response)); 
      var course=JSON.parse(response.query); 
      var row=JSON.parse(response.rows); 
+0

這看起來像一個普通的語法錯誤 - 我們需要更多的PHP文件。嘗試單獨導航到PHP,並查看它是以「<」開頭還是在JSON之前有一些其他字符。如果是這樣,請在您的文檔中查找<?php標籤之外的雜散字符。 – ahoffner

+0

不......一切都好的... –

+0

我轉發php –

回答

0

似乎你不正確使用JSON.parse。 JSON.parse只能做一次。 JSON.parse的結果是當然存儲對數據的訪問是由response.query或respons.row ..等等而不是由JSON.parse(respose.query)產生的。