2015-06-28 69 views
0

我正在構建一個網站,我找不到一件事。我需要一個腳本來檢查從加載時間起10秒是否已經過去,然後它會運行另一個PHP腳本。但我不確定這是否可能。我附加了我對這個問題的嘗試。有任何想法嗎?提前致謝!自加載時起10秒後運行PHP腳本

if (
<script type="text/javascript"> 
    function viewplus(){ 
    } 
    setTimeout(viewplus, 10000); 
</script> 
) 
$query = "SELECT * FROM users WHERE id=" . $rws2['id_user']; 
$result2 = mysqli_query($db, $query); 
$rws2 = mysqli_fetch_array($result2); 
$views_total = $rws2['views_total'] + 1; 
$views_week = $rws2['views_week'] + 1; 
$views_today = $rws2['views_today'] + 1; 
$id = $rws2['id']; 
$query = "UPDATE users SET views_total='$views_total',views_week='$views_week',views_today='$views_today' WHERE id='$id'"; 
mysqli_query($db, $query); 
+1

不能使用PHP中的JavaScript建議。使用'ajax' – Tushar

+0

我使用PHP內部的JavaScript –

+0

你也不能這樣做,一種方法是回顯javascript,以便瀏覽器可以運行它。 javascript只在瀏覽器中運行,PHP只運行在服務器上 – RiggsFolly

回答

0

有可能使用jQuery這樣的: 把你的代碼在一個PHP文件,並用更新表和接收狀態消息的

<script type="text/javascript"> 

// Check if the page has loaded completely           
$(document).ready(function() { 
    setTimeout(function() { 
     $('#some_id').load('index.php'); 
    }, 10000); 
}); 
</script> 

實施例的頁面加載後10秒後調用它:

if (isset($_POST['id'])&& 
    isset($_POST['var'])){ 

$con = new mysqli("localhost", "my_user", "my_password", "world"); 

$id = $con->real_escape_string($_POST['id1']); //In our example id is INT 
$var = $con->real_escape_string($_POST['var']); 
$result = $con->query("UPDATE table SET value = '$var' WHERE id = $id); 
(!$result) ? echo "Update failed!" : "Update succeeded"; 
} 

這將加載你的PHP文件的輸出(更新申請或成功)的元素(這種情況下,一個ID爲some_id)。

的另一種方式,我不使用PHP的sleep()功能PHP Documentation

+0

我可以傳遞多個變量嗎?如index.php?id1 = xxx&id2 = yyy&id3 = zzz –

+0

您可以使用GET或POST傳遞參數。使用POST傳遞參數的示例: '$('#some_id')。load('index.php',{'id1':'value','id2':'value2'});' – Allkin

+0

請注意,此解決方案假設你在客戶端使用jQuery。 –