2017-05-30 25 views
1

相關主題:jQuery Ajax returns the whole pagejQuery的AJAX獲得MySQL數據返回的index.html的全部

以上線程相關的,這似乎是一個頗爲普遍的問題,但在該線程回答不準確幫助我的情況。

當點擊我的網頁上的圖像,一個jQuery函數被調用,並在該函數是一個Ajax聲明:

//click an image 
$(".img_div").click(function() { 

    //get integer stored in alt attribute and pass to variable 
    var altCheck = $(this).find('.modal_img').attr('alt'); 

    //get MySQL data 
    $.ajax({ 

     //php file to grab data 
     url: "get.php", 
     type: "post", 
     datatype: "json", 

     //pass above variable to php file 
     data:{ ajaxid: altCheck }, 

     success: function(response){ 
      //log data to console 
      console.log(response); 
     }, 
     error: function(){ 
      console.log("test"); 
     } 
    }); 

我想接收到的數據純屬登錄到控制檯作爲現在進行測試,但是我將獲取登錄到控制檯的整個index.html頁面。

在任何圖像點擊之前,已連接到數據庫並存儲在變量$db中。

這裏是我的get.php文件:

<?php 

//variable from jQuery 
$value = filter_var($_REQUEST["ajaxid"], FILTER_SANITIZE_STRING); 
$value = mysqli_real_escape_string($value); 

//variable passed to SQL statement 
$sql = $conn->prepare("SELECT FROM table WHERE screeningId = ?"); 
$sql->bind_param("s",$value); 

//Get data 
$result = mysqli_query($db, $sql); 
while ($row = mysqli_fetch_array($result)){ 
    //output data 
    echo $row['url']; 
} 
?> 
+1

第一次識別時,您提到數據類型爲「json」,但您的ajax響應不是json。 – Naga

+0

我試圖改變這個「文本」,但結果是一樣的。 – rpivovar

+1

嘗試使用查詢字符串直接在瀏覽器中運行get.php。例如,'http://...../../get.php?ajaxid = sample_value' – Naga

回答

2

第一標識,你所提到的數據類型爲 「JSON」,但你的Ajax響應不是JSON。所以這樣試試吧,

<?php 

// Make DB connection variable($conn) available here 
//variable from jQuery 
$value = filter_var($_REQUEST["ajaxid"], FILTER_SANITIZE_STRING); 
$value = mysqli_real_escape_string($conn, $value); 

//variable passed to SQL statement 
/*$sql = $conn->prepare("SELECT FROM table WHERE screeningId = ?"); 
$sql->bind_param("s",$value);*/ 
$sql = "SELECT * FROM table WHERE screeningId = '$value'"; 
$result = mysqli_query($db, $sql); 

//Get data 
$result = mysqli_query($db, $sql); 
$temp = array(); 
while ($row = mysqli_fetch_array($result)){ 
    //output data 
    array_push($temp,$row['url']); 
} 
echo json_encode($temp); 
?> 

爲了調試的目的,試着直接在瀏覽器中用查詢字符串運行get.php。例如,http://...../../get.php?ajaxid=sample_value

+1

謝謝。隔離頁面運行出現語法錯誤!好的提示。修復,然後檢查您的代碼.. – rpivovar

+0

警告:mysqli_real_escape_string()期望完全2個參數,1給出 – rpivovar

+1

您還缺少get.php文件中的mysql連接。首先在get.php中創建'$ conn'(數據庫連接)變量並將其傳遞給'mysqli_real_escape_string()'函數。例如, $ conn-> real_escape_string($ value); OR mysqli_real_escape_string($ conn,$ value); – Naga

相關問題