2017-09-29 34 views
-1

我想創建一個頁面,從頂部再次讀取我的代碼,以檢查數據庫中有多少數據。如果它達到10,那麼我想執行一些東西,例如「截斷表」。重新讀取php代碼而不重新加載頁面 - 這可能嗎?

這是我現在的代碼:

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"> 


</script> 

<script type="text/javascript"> 
$(document).ready(function() 
{ 

    function loadlink() 
    { 

     $.ajax({ 
      type: "POST", 
      url: "load.php", 
      data: { action: 'pass any value if required' }, 
      success: function(theResponse) { 
       // optional 
       $('#displayMessage').html(theResponse); 
       } 
     }); 
    } 


    loadlink(); // This will run on page load 
    setInterval(function(){ 
     loadlink() // this will run after every 10 seconds 
    }, 500); 

}); 
</script> 

<div id="displayMessage">Result:<br></div> 

<?php 
error_reporting(0); 

include('core/dbconnection.php'); 
#$action = isset($_POST['action']) ? $_POST['action'] : ''; // optional 
#$action = 'Power'; 
$sql = mysql_query("SELECT * FROM tb_staff"); 
$count = mysql_num_rows($sql); 
if($count <= '4' ){ 
    //backflip 
    echo "backflip"; 
}else{ 
    //wait10seconds,check again 
    echo "Not 4"; 
} 


?> 

但它呼應了兩次

輸出:

結果: 不是4 不是4

+0

是的,你需要使用套接字 –

+0

格式代碼正確 –

+0

坐落在一個控制器方法或包括,然後使用AJAX這個代碼。 – Pauloscorps

回答

0

load.php

<?php 
$action = isset($_POST['action']) ? $_POST['action'] : ''; // optional 

$sql = mysql_query("SELECT * FROM tb_x"); 
$count = mysql_num_rows($sql); 
if($count = 10){ 
    //backflip 
}else{ 
    //wait10seconds,check again 
} 
?> 

主文件

阿賈克斯將運行後每10秒調用load.php

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script> 

<script type="text/javascript"> 
$(document).ready(function() 
{ 

    function loadlink() 
    { 

     $.ajax({ 
      type: "POST", 
      url: "load.php", 
      data: { action: 'pass any value if required' }, 
      success: function(theResponse) { 
       // optional 
       $('#displayMessage').html(theResponse); 
       } 
     }); 
    } 


    loadlink(); // This will run on page load 
    setInterval(function(){ 
     loadlink() // this will run after every 10 seconds 
    }, 10000); 

}); 
</script> 

<div id="displayMessage"><!--optional--></div> 

注:

原來的MySQL擴展現在已經過時,連接到數據庫時生成E_DEPRECATED錯誤。相反,請使用MySQLi或PDO_MySQL擴展。

的MySQLi教程:https://www.w3schools.com/PhP/func_mysqli_connect.asp

+0

我試過你的代碼,非常感謝, 現在我的問題是,它回聲2數據 $ sql = mysql_query(「SELECT * FROM tb_staff」); $ count = mysql_num_rows($ sql);如果($ count <='4'){ // backflip echo「backflip」; } else { // wait10秒,再次檢查 echo「Not 4」; } 結果: 未4 未4 –

+0

'回聲日期( 'YMD-H:I:S A',時間())。'不是4';'檢查日期時間2次相同的值還是不同的 –

+0

也回顯查詢;也許Ajax調用2次或查詢運行2次;試着找出查詢運行2次的部分; –

相關問題