2009-11-13 116 views
0

我是新来的。我只是创建一个可以从MySQL数据库读取数据的代码。 但是,当我添加数据库内的新数据,我的PHP页面不能更新自己的自动。 我希望页面可以自动更新,我可以按下f5按钮并刷新。 任何人都可以帮我解决这个问题吗?如何自动更新数据库而不用ajax刷新?

得到任何misstake?

<script type="text/javascript"> 
function List(){ 
    var ajaxRequest; 
    var selectedProduct = ""; 
    var product = document.getElementById('product'); 
    var output ="";   
    var k = 0; 
// var name = new Array; 
// var model = new Array; 
    var unitprice = new Array; 
    var queryString = new Array; 

    queryString = "&name=" + txtname + "&model=" + txtmodel + ; 
      ajaxRequest.open("GET", $productPrice + queryString, true); 
      ajaxRequest.send(null); 
    ajaxRequest.open("GET", $productPrice + queryString, true); 
    ajaxRequest.send(null); 

     <?php foreach ($productPrices as $price): ?> 
      name[k] = "<?php echo $price['Product']['txtname']; ?>"; 
      model[k] = "<?php echo $price['Product']['txtmodel']; ?>"; 
      k++; 

     <?php endforeach; ?> 

     k=0; 
     for (var i = 0; i < product.length; i++) { 
       k = product.options[i].value; 

      if (product.options[i].selected) { 
       output += '<tr>'+ 
           '<td style="border-right: 0px; width:270px; text-align:center" id="ProductProduct'+k+'" name="data[Product][Product]['+k+']">'+name[i]+'</td>'+ 
           '<td style="border-right: 0px; width:100px; text-align:left" id="ProductProduct'+k+'" name="data[Product][Product]['+k+']">'+model[i]+'</td>'+ 
          '</tr>';  
      } 
     } 
     output = '<table style="width:500px; border: 0px;">'+output+'</table>';   
     document.getElementById('productTable').innerHTML = output; 
}     
</script> 
+1

javascriptlibrary可能会使这项工作更容易 – Natrium 2009-11-13 07:47:14

+0

是的,尽管你在哪里调用Function List? – LiamB 2009-11-13 07:51:25

+0

与使用jQuery? – 2009-11-13 07:56:20

回答

1

您需要在页面中进行某种重复的AJAX检查,以查看数据库中是否有新数据。你可以使用setTimeout或setInterval来做到这一点。

E.g.

function CheckData() { 
    List(); 
    setTimeout(CheckData, 10000); 
} 
+0

@ck:只是一个评论,我不知道我们在谈论多少数据,有多少用户,但是这将加载服务器*快* ... – RageZ 2009-11-13 08:04:31

+0

@RageZ - 它只是一个潜在的解决方案。超时时间可以延长,理想情况下应该进行分析以使最慢的部分更有效。 – cjk 2009-11-13 08:45:47

0
setInterval(function() { 
    List(); // your function 
     // Do something every 2 seconds 
}, 2000); 

这是jQuery的功能,这将帮助你。