2013-07-01 182 views
0

在我的php站点上,我想从使用javascript的mysql数据库中每三秒钟检索一次数据。无法通过javascript函数从数据库获取php数据

问题:当我使用SELECT * from msgtable检索数据时,则php和javascript startTime似乎都不起作用。

的JavaScript:

setInterval(function() { 
    var link = document.getElementById("chg"); 
    link.href = "http://google.com.pk"; 
    link.innerHTML = "<?php dynamic(); ?>"; 
}, 3000); 

function startTime() { 
    var today = new Date(); 
    var s = today.getSeconds(); 
    s = checkTime(s); 

    if(s == s+3) { alert("faraz"); } 
    document.getElementById('time').innerHTML= s; 
    t = setTimeout(function() { startTime() }, 500); 
} 

function changeURL() { 
    var link = document.getElementById("chg"); 
    link.href = "http://google.com.pk"; 
    link.innerHTML = "Google Pakistan"; 
} 

function checkTime(i) { 
    if (i < 10) { 
     i = "0" + i; 
    } 
    return i; 
} 

PHP:

<?php 
    $connection = mysql_connect("localhost","root",""); 
    $db_select = mysql_select_db("msgs",$connection); 
    $result = mysql_query("SELECT * FROM msgtable", $connection); 

    function dynamic() { 
     echo "faraz"; 

     while ($row = mysql_fetch_array($result)) { 
     echo $row['msgBody'] ; 
     } 
    } 
?> 

HTML:

<body onLoad="startTime()"> 
    <div id="chg1"> 3 Seconds to Google Pakistan </div> 
    <a href="http://google.it" id="chg">Google Italia</a> 
    <!-- Hafiz Faraz Mukhtar--> 
    <div id="time"> Time </div> 
    <div class="publicOut">Faraz</div> 
</body> 
+1

相关http://stackoverflow.com/q/13840429/1331430 –

回答

1

不能调用PHP˚F通过JavaScript这样的联合:

link.innerHTML = "<?php dynamic(); ?>"; 

您将需要进行AJAX调用来运行PHP脚本并返回结果。我建议使用jQuery和$ .ajax,这很容易。

http://api.jquery.com/jQuery.ajax/

+0

hhmm alrite。那为什么它正确回应“法拉兹”;在动态()?如果我们删除select和fetch数组。 – hfarazm

+0

我们可以使用link.innerHTML =“<?php dynamic();?>”;喜欢这个在JavaScript中。我确定。 – hfarazm

+0

它可能会回显'faraz',但您在上面发布的JavaScript并不是所谓的。如果您可以发布整个代码以及文件名,则可以更容易地查看问题所在。 – Seth

1

需要使用正常AJAX或jquery的AJAX此。使用JavaScript的setInterval()函数用于设置间隔

在这里是一个示例的jquery AJAX方法

 function request() 
     { 
      $.ajax ({ 
      url : ""; 
      data : {}, 
      dataType : "" , 
      success : function(success) {} , 
      error : function() {} 
      }); 
     } 

setInterval()语法

 setInterval(request,3000); // in milliseconds