2016-08-02 96 views
1

我有一個AJAX代碼按DATE排序項目,但我想按類別排序項目。如何添加一個額外的變量到Ajax查詢

我想使用下拉菜單來選擇類別。

我通過使用AJAX代碼調用頁面(然後調用MySQL查詢頁面)通過URL傳遞類別變量。

我有這樣的代碼:

var datumfree = 0; 

var month = new Array(); 
month[0] = "Jan"; 
month[1] = "Feb"; 
month[2] = "Mar"; 
month[3] = "Apr"; 
month[4] = "May"; 
month[5] = "June"; 
month[6] = "July"; 
month[7] = "Aug"; 
month[8] = "Sept"; 
month[9] = "Oct"; 
month[10] = "Nov"; 
month[11] = "Dec"; 

$(document).ready(function() { 



    function refresh(free){ 

     $("#loadingfree").show(); 

     if (free) datumfree = datumfree + free; 
    var url = "listcategory.php?date=" + datumfree; 
    $.getJSON(url,function(data) { 

現在我試圖做這樣的事情:

var datumfree = 0; 
var category = '$category'; 

var month = new Array(); 
month[0] = "Jan"; 
month[1] = "Feb"; 
month[2] = "Mar"; 
month[3] = "Apr"; 
month[4] = "May"; 
month[5] = "June"; 
month[6] = "July"; 
month[7] = "Aug"; 
month[8] = "Sept"; 
month[9] = "Oct"; 
month[10] = "Nov"; 
month[11] = "Dec"; 

$(document).ready(function() { 



    function refresh(free){ 

     $("#loadingfree").show(); 

     if (free) datumfree = datumfree + free; 
    var url = "listcategory.php?date=" + datumfree + "&category=" + category; 
    $.getJSON(url,function(data) { 

我知道這可能是愚蠢的,但我在PHP初學者,我絕對沒有關於AJAX的線索,所以任何幫助都是可以理解的。

+2

只是一個短期調整,可以幫助你的:你寫的語言是JavaScript。像'$ .getJSON'這樣的調用是AJAX方法,它允許你在不刷新頁面的情況下與服務器/ API進行交互。 http://www.w3schools.com/ajax/ajax_intro.asp 現在要回答這個問題,是什麼問題?在你提出請求後,我發現你沒有對數據做任何事情,所以你不會真正知道你是否擁有它。你在控制檯中遇到什麼錯誤? – Jordan

+0

你讀過這個:http://api.jquery.com/jquery.getjson/ – Chax

+0

你爲什麼在你的$(document).ready()裏有'refresh'函數。你應該把它放在範圍之外。 – Chax

回答

1

要從類別下拉列表中獲取類別值,如果id爲下拉列表使用$("#id_you_gave").val(),然後在您的listcategory.php頁面中,您有$_GET['date']用於獲取從ajax傳遞的日期值。以類似的方式,您需要添加$_GET['category']來獲取類別並將其添加到mysql的sql查詢中(我們將在ajax中發送參數的方式是key和value,如date =「datevalue」& category =「categoryValue」。需要使用$ _GET ['']中的鍵如果請求或$ _POST ['']如果post請求在PHP中獲取我們通過阿賈克斯的值)

+0

你的意思是這樣嗎? 'var category = $(「#category」)。val()' – Hunnenkoenig

+0

是的,如果類別下拉的id屬性爲「category」 – CNKR

+0

好的,謝謝!它還沒有工作,但希望我能解決它。我所做的是在我的主頁上有一個標題。在該標題中是下拉列表。現在,如果我從下拉列表中選擇一個項目(類別),則會加載此代碼的頁面,然後加載MySQL代碼的頁面。我不確定這是不是一個問題,它通過3頁。 – Hunnenkoenig

0

好吧,我想通了。

它現在有效。

這是我做過什麼:

var datumfree = 0; 
var category = '<?php echo $_POST['category']; ?>'; 

var month = new Array(); 
month[0] = "Jan"; 
month[1] = "Feb"; 
month[2] = "Mar"; 
month[3] = "Apr"; 
month[4] = "May"; 
month[5] = "June"; 
month[6] = "July"; 
month[7] = "Aug"; 
month[8] = "Sept"; 
month[9] = "Oct"; 
month[10] = "Nov"; 
month[11] = "Dec"; 



$(document).ready(function() { 



    function refresh(free){ 

     $("#loadingfree").show(); 

     if (free) datumfree = datumfree + free; 
    var url = "listcategory.php?date=" +datumfree+ "&category=" + category; 
    $.getJSON(url,function(data) { 
相關問題