2016-11-11 64 views
0

比方說有一個PHP代碼發送GET請求到同一頁與jquery

page.php文件

<a href="page.php?pid=1" id="1">Product 1</a> 
<a href="page.php?pid=2" id="2">Product 2</a> 

<?php 
$_GET['pid']; 
if(!isset($_GET['pid'])){ 
    $stmt=$mysqli->prepare("SELECT * FROM products WHERE id=?"); 
    $stmt->bind_param("i",$_GET['pid']); 
    $stmt->execute(); 
?> 
<table> 
    <tr><td>*show products code*</td></tr> 
</table> 
<?php } ?> 

現在我在想,有沒有什麼解決辦法,當我點擊的錨標記上,頁面不會刷新,而不是它在那裏停留,並送價值,$_GET['pid'];

jQuery的AJAX部分的一點我認爲是這樣的

$('a').click(function() 
{ 
    $.ajax(
    { 
     url: 'page.php', 
     method: 'GET', 
     data: $(this).attr('id').serialize(), 
    }); 
}); 

它沒有工作,我不完全理解我將如何將數據發送到$_GET['pid']

有一些解釋會很樂意幫我很多任何幫助......

+0

它沒有工作如何?互聯網上充滿了解釋使用Ajax的手冊。 –

+2

'$(this).attr('id')。serialize(),'沒有意義attr()返回一個字符串,而一個字符串沒有序列化 – epascarello

+0

'data'選項只對'POST'請求​​有意義。 'GET'數據應該通過URL傳遞。 – hindmost

回答

1

你可以做

$('a').click(function(event){ 
    $.ajax({ 
     url: 'page.php?pid=' + $(this).attr('id'), 
     method: 'GET' 
    }); 
    event.preventDefault(); 
}); 

$('a').click(function(event){ 
    $.ajax({ 
    url: $(this).attr('href'), 
    method: 'GET' 
    }); 
    event.preventDefault(); 
}); 

PS我建議codestyle喜歡這一點,因爲JS解釋提出了 「;」: