[英]Ajax page load with <a> tag
我有一個A-tag,單擊該標簽后,頁面會重新加載並執行某些php代碼。 成功執行php代碼后,頁面將被重定向到同一頁面。
現在的問題是,除非您不使用ajax,否則頁面會跳到頂部,我認為這是正常的。 因此,如果我可以在下面的代碼行中獲得一些幫助。
HTML:
<a href="home.php?key=some_value&val=1" id="ajax_reload">Unfollow</a>
在單擊上面的鏈接后,將執行此php代碼
PHP:
if(isset($_GET['key']) && isset($_GET['val'])){
//some task....
header('location:home.php');
}
注意:如果我可以在不重新加載整個頁面的情況下執行此操作,則所有代碼都位於同一頁面home.php中,這確實會有所幫助。
[編輯]非常抱歉,我沒有在問題中添加此內容。 我正在使用php從mysql數據庫在頁面上顯示一堆數據。 因此所有數據都具有相同的ID和類別
要使重定向的頁面向下滾動到初始位置,請在位置標題的末尾添加一個片段(#):
if(isset($_GET['key']) && isset($_GET['val'])){
//some task....
header('location:home.php#ajax_reload"');
}
一個更簡單的解決方案是使用標簽構建鏈接,並將標簽添加到HTML中,例如:
<a href="home.php#LinkThisPartOfThePage?key=some_value&val=1" id="ajax_reload">Unfollow</a>
<div name="LinkThisPartOfThePage">...</div>
現在您的鏈接將指向該特定的div
如果要在PHP中執行操作而不重新加載頁面,則解決方案是使用ajax。
范例:
HTML:
<a href="#" id="ajaxButton">Click !</a>
Javascript:
$("#ajaxButton").on('click', function() {
var btn = $(this);
$.ajax({
url : 'phpscript.php?key=somevalue&val=1',
type : 'GET',
dataType : 'json',
success : function(dataObject, statut){
// some tasks ...
console.log(dataObject);
},
error : function(result, statut, error){
console.log(erreur);
}
});
});
PHP的:
<?php
if(isset($_GET['key']) && isset($_GET['val'])){
//some task....
return json_encode($result);
}
?>
這樣,PHP的返回可與javascript一起使用,而無需重新加載
嘗試通過ajax做到這一點
<a href="javascript:void(0);" class="ajax_reload" data-key="some_value" data-someval="1">Unfollow</a>
<script>
$(function(){
$('.ajax_reload').on('click',function(){
$.ajax({
url : home.php,
type:'POST',
data : {key: $(this).data('key'), val:$(this).data('someval')},
dataType:'json',
success:function(data)
{
if(data.success==1)
location.reload();
}
});
});
});
</script>
在家里.php
if(isset($_POST['key']) && isset($_POST['val'])){
//some task....
echo json_encode(array('success'=>1));exit();
}
它可能包含一些語法錯誤,這是通過ajax使用它的基本思路
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.