2014-01-08 82 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 

感谢所有的指针。