2012-08-02 87 views
0

看起来这个问题已经在过去得到解答,但是,我要么1)难以理解解决方案,要么2)没有正确实施它们。将PHP函数的结果加载到DIV容器中

我有一个PHP函数,运行时会返回数据库查询的结果。结果看起来类似于这样:

<a href="http://www.dannychoo.com/post/en/26468/Koenji.html" class="danny-choo">Koenji</a> 

我可以在页面中回显这一点就好了。我想要做的是给最终用户刷新链接的选项(可以通过刷新页面并响应由php函数返回的新随机字符串来完成),而无需刷新整个页面。我已经尝试了几种不同的方法,但似乎返回元素的函数只在页面重新加载时运行 - 所以我的URL永远不会改变。

这是我最近的尝试。我想到我从数据库中抓取的url只在页面载入时才被设置。我认为设置一个函数来初始化url变量会有所帮助 - 没有用。它仍然只能在页面加载时运行一次。

$(document).ready(function() { 
    updateVariable(); 
    $('#dannychoolink').html(random + url); 
    $('.danny-choo').attr('target', '_blank'); 
}); 

$('#clicky').click(function() { 
    updateVariable(); 
    $('#dannychoolink').html(random + url); 
    $('.danny-choo').attr('target', '_blank'); 
}); 

function updateVariable() { 
    url = '<?php echo dannyChoo();?>'; 
    random = 'Random DannyChoo.com article: '; 
}; 

您可以在现场www.dannychoofan.com看到它。

任何帮助表示赞赏= 0)

+0

如果你想要这个而无需刷新页面发生,你需要使用AJAX(JavaScript)的调用你的php功能。看看[Jquery ajax函数](http://api.jquery.com/jQuery.ajax/),他们应该给你一个正确的方向。此外,还有很多真正非常好的教程,只要给它一个谷歌,但更重要的是让它自己一个镜头,如果你有任何问题回来寻求帮助。 :) – Jeemusu 2012-08-02 01:15:26

+0

谢谢 - 我真的用尽了我的Google护目镜:P。我用ajax调用来发送数据到我的函数 - 但返回的结果总是空的。我的功能需要做的不仅仅是“返回结果”吗?将它们发布到全局变量以供我的页面抓取? – 2012-08-02 01:22:24

回答

1

它看起来像你寻找ajax风格的电话。

您应该将dannyChoo()函数的内容放入一个名为articleLinkGenerator.php的新文件中,该文件与index.php文件处于同一级别。这个文件应该有dannyChoo的)函数的内容(以便它自动执行和回声您所期待的链接像

<?php 
    function dannyChoo(){ 
     // generate random link code 
     echo $random_link_html // Like <a href="http://www.dannychoo.com/post/en/26468/Koenji.html" class="danny-choo">Koenji</a> 
    } 

     dannyChoo(); 

然后在你的index.php(主网站)HTML中使用更新功能阿贾克斯(http://api.jquery.com/jQuery.get/)的样子:

$(document).ready(function() { 
    updateVariable(); 
}); 

$('#clicky').click(function() { 
    updateVariable(); 

}); 

function updateVariable() { 
    $.get('articleLinkGenerator.php',function(data){ 
     $('#dannychoolink').html(data); 
    }); 
}; 
+0

Michael - 谢谢!这种作品。我不知道为什么,但数据没有被输出到正确的div(它实际上位于标签0.o以上)。另外,有没有一种方法可以发送会话变量(如果脚本成功多个功能,我想根据会话数据进行切换。) – 2012-08-02 01:44:24

+0

没关系 - 最终让它工作。朋友,谢谢!我以为我永远不会得到这个^ ^; – 2012-08-02 02:01:04

+0

很高兴为您服务! – michael 2012-08-02 02:15:20

0

这是因为PHP运行在页面加载之前,和JavaScript在页面加载后运行,所以你的变量不会改变,而不另一个页面加载。