2014-01-08 78 views
0

不知道這是否可能,但在這裏,我有一個基本的PDO查詢將結果存儲在一個數組中。顯示來自PDO查詢每10秒的結果

<?php 
// configuration 
$dbtype  = ""; 
$dbhost  = ""; 
$dbname  = ""; 
$dbuser  = ""; 
$dbpass  = ""; 
// database connection 
$conn = new PDO("mysql:host=$dbhost;dbname=$dbname",$dbuser,$dbpass); 
$title = 'PHP AJAX'; 
// query 
$sql = "SELECT * FROM thankyou"; 
$q = $conn->prepare($sql); 
$q->execute(array($title)); 
$q->setFetchMode(PDO::FETCH_BOTH); 
// fetch 
while($r = $q->fetch()){ 
echo"<br>"; 
print_r ($r); 
} 
?> 

現在,我無法得到我的頭,我也從來沒有使用JavaScript。我可以通過結果旋轉一次顯示一個5-10秒,然後顯示另一個?它可以是隨機的也可以是有序的,我沒有受到傷害。我發現這個工作,但無法弄清楚如何獲取數組。我知道一個是客戶端,一個是服務器端。

<script type="text/javascript"> 
var rotatingTextElement; 
var rotatingText = new Array(); 
var ctr = 0; 

function initRotateText() { 
rotatingTextElement = document.getElementById("textToChange"); 
rotatingText[0] = rotatingTextElement.innerHTML; // store the content that's already on  the page 
rotatingText[1] = "need to write PDO array here"; 
setInterval(rotateText, 5000); 
} 
function rotateText() { 
ctr++; 
if(ctr >= rotatingText.length) { 
ctr = 0; 
} 
rotatingTextElement.innerHTML = rotatingText[ctr]; 
} 
window.onload = initRotateText; 
</script> 

,這是人的結果顯示

<span id="textToChange">this is were the result is displayed</span> 

如果我需要做的是一個完全不同的方式,這不是一個問題,如果有人能在正確的方向指向我。

+2

使用AJAX通過JavaScript從服務器輪詢數據。在不同的瀏覽器中使用這個簡單的方法是使用jQuery(http://www.jquery.com/;雖然也有其他的JS庫)。這裏是AJAX文檔:http://api.jquery.com/jquery.ajax/ – Reeno

+0

感謝Reeno的閱讀位。 – user1980618

+0

或者數組是固定的,你只需要獲取它一次,然後每隔幾秒鐘顯示一個隨機元素?使用'items [Math.floor(Math.random()* items.length)];'where'items'是一個JS數組 – Reeno

回答

0

我決定使用AJAX到底調用seprate PHP頁面和正常工作,這是更新的頁面。

<script type="text/javascript"> 
    $(function() { 
     getStatus(); 
}); 
function getStatus() { 
    $('div#status').load('thankyou.php')//Thankyou being the page the query is on 
    setTimeout("getStatus()",5000);//refreshes every 5 seconds 
} 
</script> 

查詢本身是一個標準的PDO

$query = $db->query("SELECT * FROM `thankyou` ORDER BY RAND() LIMIT 1 

感謝所有的指針。