2016-11-29 33 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_你的工作以获得更好的答案。 –