2016-11-29 28 views
0

每個MySQL的結果在page1.php中我打電話使用Ajax 使page2.php(汽車或船的Lijst)。之後,我想使用另一個Ajax查詢對結果進行排序。排序使用Ajax

page1.php中的2個jqueries代碼:

function display_cars() { 
jQuery.ajax({ 
type: 'GET', 
url: 'page2.php?action=cars', 
success: function(msg) { 
$('#show_results').html(msg); 
} 
}); 
} 


function display_boats() { 
jQuery.ajax({ 
type: 'GET', 
url: 'page2.php?action=boats', 
success: function(msg) { 
$('#show_results').html(msg); 
} 
}); 
} 

使page2.php我有mysql的查詢:

if ($action == "car") { 
$sql = "SELECT * 
FROM table 
WHERE cars = $cars 
ORDER BY date DESC 
"; 
} 



if ($action == "boats") { 
$sql = "SELECT * 
FROM table 
WHERE boats = $boats 
ORDER BY date DESC 
"; 
} 

這個MySQL查詢的結果:

梅賽德斯:50

BMW:10

本田:20

現在我想每個結果通過使用Ajax(ORDER BY量DESC)排序。

我正在考慮使用php會話,但我不確定它是否是正確的解決方案。

+0

請參閱http://meta.stackoverflow.com/questions/333952/why-should-i-provide-an-mcve-for-what-seems-to-me-to-be-a-very-simple- sql-query – Strawberry

+0

@Strawberry謝謝。我已經做了。你的意思是我的問題不夠清楚,我不得不添加更多的信息和解釋? –

+0

我認爲「元問題」的接受答案是不言自明的 – Strawberry

回答

0

你可以叫AJAX這樣

function sort_boats() { 
    var data = { 
     action:"boats", 
     sort:"desc" 
    } 
    jQuery.ajax({ 
    type: 'GET', 
    url: 'page2.php', 
    data:data, 
    success: function(msg) { 
    $('#show_results').html(msg); 
    } 
    }); 
    } 

php中嘗試這個

if(isset($_GET['action'])&&isset($_GET['sort'])) { 
    $action = $_GET['action']; 
    $sort = $_GET['sort']; 
    $sql = "SELECT * 
    FROM table 
    WHERE boats = $action 
    ORDER BY date DESC , quantity $sort"; 
} 

您只需在您的SQL查詢的數量使用ORDER BY假設它這樣做是列之一你的桌子。

PS:使用POST更好的安全性。

+0

根據你的問題改變了我的答案希望它有幫助。 –

+0

謝謝Vikram。這不是我需要的解決方案。如果我有+100類別(汽車,船,...)呢?對每個項目使用單獨的Ajax代碼幾乎是不可能的。 –

+0

** SELECT * FROM TABLE WHERE categories = $ category ORDER BY date DESC **你也可以這樣做。你還應該提及_table_你的工作以獲得更好的答案。 –