[英]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.