2016-08-21 45 views
0

您好我是新來的PHP JSON如何從數據庫中檢索基於行ID的值使用php mysql json?

我的URL

http://xxxx.in/event-view.html?event_id=8

我的PHP代碼(JSON-eventview.php)

include "db.php"; 
    $data = array(); 
    $id = $_GET['event_id']; 
    $q=mysqli_query($con,"select * from `ca_events` where ca_events.id=$id "); 
    while ($row=mysqli_fetch_object($q)){ 
    $data[]=$row; 
    } 
    echo json_encode($data); 

和Javascript(獲得Json)用於上面的url。

$(document).ready(function() { 
    var url = "http://localhost/php/json-eventview.php"; 
    $.getJSON(url, function(result) { 
     console.log(result); 
     $.each(result, function(i, field) { 
      var id = field.id; 
      var general_id = field.general_id; 
      var name = field.name; 
      var description = field.description; 
      var agenda = field.agenda; 
      var date = field.date; 
      var time = field.time; 
      $(".navbar-brand span").append(" " + name + " "); 
     }); 
    }); 
}); 

上面給出了一個空白區域。如果, 我刪除$ id = $ _GET ['event_id'];和在PHP文件中我得到整個表作爲結果。

我需要URL中該特定ID的列值。任何人都可以幫助或提供其他想法和示例,以獲取基於url的id值。

+1

您需要通過您r如果您希望在該頁面上使用$ _GET,請將參數GET參數添加到您的PHP頁面的URL中。 'var url =「http://localhost/php/json-eventview.php」;'該網址中沒有GET參數。 –

+0

請不要將用戶數據插入到SQL語句中。 http://php.net/manual/en/mysqli-stmt.prepare.php:D – keyboardSmasher

+0

是你的id是uniq嗎? –

回答

0

你的問題是,你是路過GET數據到一個HTML表單(不是PHP或別的什麼)

您需要添加一些jQuery的(因爲我在你的JavaScript看到jQuery代碼)拉出事項標識= 8 如此位置 How to Read a URL from Jquery

然後將其添加到您的.getJson URL的末尾。

+0

根據您的消息我得到這個添加到JavaScript var baseUrl =(window.location).href; var event_id = baseUrl.substring(baseUrl.lastIndexOf('=')+ 1);警報(event_id)從url提醒這個id,但是如何在php中獲得這個id並且根據這個id在mysqli中得到結果。請澄清 –

+0

將ID存儲在外部變量(如newid)中,然後將其放置在URL中作爲「?event_id ='。event_id」 – Forbs

0

更改JavaScript代碼如下:

$(document).ready(function() { 
var url = "http://localhost/php/json-eventview.php?event_id=YOUR_REQUESTED_ID"; 

,並把您的身份證insted的的YOUR_REQUESTED_ID

+0

我有兩頁。 events.html包含列出的所有事件。通過點擊一個事件,它應該在event-view.html中顯示該特定事件的列值,所以如何動態地放置事件ID –

0

正如我在我上面的評論中提及的問題是,URL參數是頁面上的有您的JavaScript,而不是在PHP頁面,該頁面正在接收AJAX呼叫。解決問題的一種方法是將event_id傳遞到您的PHP頁面,該頁面會收到AJAX調用。

在具有JavaScript的頁面上,解析url以獲取event_id參數。

this site功能會分析你的網址參數:

$(document).ready(function() { 
    var getUrlParameter = function getUrlParameter(sParam) { 
    var sPageURL = decodeURIComponent(window.location.search.substring(1)), 
     sURLVariables = sPageURL.split('&'), 
     sParameterName, 
     i; 

    for (i = 0; i < sURLVariables.length; i++) { 
     sParameterName = sURLVariables[i].split('='); 

     if (sParameterName[0] === sParam) { 
      return sParameterName[1] === undefined ? true : sParameterName[1]; 
     } 
    } 
    }; 
    var eventId = getUrlParameter('event_id'); 
}); 

這會給你的事項標識,這樣你就可以用它在你的AJAX調用其他PHP頁面:

var url = 'http://localhost/php/json-eventview.php?event_id="' + id + '"'; 

您的完整代碼應該看起來像這樣:

$(document).ready(function() { 
    var getUrlParameter = function getUrlParameter(sParam) { 
    var sPageURL = decodeURIComponent(window.location.search.substring(1)), 
     sURLVariables = sPageURL.split('&'), 
     sParameterName, 
     i; 

    for (i = 0; i < sURLVariables.length; i++) { 
     sParameterName = sURLVariables[i].split('='); 

     if (sParameterName[0] === sParam) { 
      return sParameterName[1] === undefined ? true : sParameterName[1]; 
     } 
    } 
    }; 
    var eventId = getUrlParameter('event_id'); 
    if(eventId !== undefined { 
    var url = 'http://localhost/php/json-eventview.php?event_id="' + eventId + '"'; 
    $.getJSON(url, function(result) { 
    console.log(result); 
    $.each(result, function(i, field) { 
     var id = field.id; 
     var general_id = field.general_id; 
     var name = field.name; 
     var description = field.description; 
     var agenda = field.agenda; 
     var date = field.date; 
     var time = field.time; 
     $(".navbar-brand span").append(" " + name + " "); 
    }); 
    }); 
    } 
}); 
+0

謝謝。上面的代碼工作得很好。 –

+0

@SubramaniN - 您可以選擇我帖子頂部附近的複選標記圖標,將我的回覆標記爲答案。 –

相關問題