喜 对不起的标题感到抱歉,但我不能100%确定我对此问题的需求
我创建了一个欢迎页面,然后当您点击链接时,您会获得更多信息,例如:
<a href="?id=1">Click Me</a>
然后php会根据id获取信息。 所以收到的信息会在页面刷新后重新加载到页面上
我希望能够做的是当用户点击链接时,使用jquery不允许链接运行但仍然在后台运行网址(不刷新页面)
我不知道从哪里开始所以我真的希望你能帮忙
感谢
答案 0 :(得分:2)
简而言之,它被称为Ajax:通过javaScript向服务器发送HTTP请求,并接收可包含结果,数据或其他信息的响应。
你提到了jQuery,这里有关于它的文档: http://api.jquery.com/jQuery.get/ http://api.jquery.com/jQuery.post/
是便捷方法,它使用预设选项封装$ .ajax。
http://api.jquery.com/category/ajax/概述了jQuery中的整个系统。
基础知识就像
//include jquery, etc.
$(document).ready(function(){
$('#some_element').click(function(){
$.get('some_url_on_your_server.php',{'data':'whatever params'},function(data){
do_something();//
},'json');
});
这将绑定一个元素以在单击时进行Ajax调用,然后使用函数('success'函数,在$ .ajax中)来处理json数据。
让您的服务器使用php中的json_encode以JSON发回数据。请务必发回正确的标题,例如
<?php
header('Content-Type: application/json');
echo json_encode($some_array);
exit;
网上有很多资源和SO用于学习Ajax,这是一个很大的话题。祝你好运。
答案 1 :(得分:1)
创建一个JavaScript函数,如sendData(linkId),然后每个标记都有一个名为sendData(this)的onclick事件。 SendData(linkId)然后可以对php文件执行HTTPRequest(也称为异步或AJAX请求),让我们称之为handler.php,它接收GET或POST方法。我更喜欢使用原型框架来做这种事情(你可以在prototypejs.org上得到它)。
好的,现在我已经说了所有这些,让我们来看看如何做到这一点的细节(为简化说明而简化的方式)。
下载原型脚本,将其保存在您的服务器上(例如原型/ prototype.js),然后将其放在您的html中<script type='text/javascript' language='Javascript' src='prototype/prototype.js'></script>
您的代码如下所示:<a id='exampleLink' onclick = 'sendData(this)'>Click me!</a>
您需要使用JavaScript执行此操作:function sendData(tagId){
var url = 'handler.php?' + 'id=' + tagId;
var request = new AJAX.Request(url, {method = 'get'});
}
最后,您需要一个包含以下内容的php文件(让我们称之为handler.php):<?php
$tag_to_get = $_GET['tagId'];
do_a_php_function($tag_to_get);
?>
简而言之,但值得一提的是,您应该向用户提供某种反馈,点击链接即可。否则,他会疯狂地点击链接等待事情发生,当它实际上正在做它应该但秘密的事情。你可以通过让你的php脚本在最后回显一些东西,比如'Success!',然后在你的JavaScript的新Ajax.Request中添加一个onSuccess参数。我将让您自己阅读如何做到这一点,因为原型网站解释了如何从处理程序接收响应并将反馈放在HTML中的某处而不会让用户刷新。
答案 2 :(得分:0)
你可以使用名为$ .get的jquery函数来实现这种行为...你可以在这里获得更多关于如何使用的信息http://api.jquery.com/jQuery.get/
答案 3 :(得分:0)
如果你真的想要(而且我认为你并不这样做),你可以使用XMLHTTPRequest(包含在jQuery.get
中)来帮助将内容加载到页面中而无需刷新页面。您希望该标记上有id
或class
,即<a href="?id=1" class="fetch">Click Me</a>
,然后:
<script>
$(".fetch").bind("click", function(evt)
{
$.get(this.attr("href"), function(data)
{
$("#whereIWantMyContent").html(data);
});
evt.preventDefault();
});
</script>
答案 4 :(得分:0)