2012-08-02 17 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在頁面加載後運行,所以你的變量不會改變,而不另一個頁面加載。