我一直在尝试刷新表而不刷新页面。
我知道这可以用AJAX完成,但我似乎无法让它工作
这是我的情况:
我有一个main.php页面,它有一个include(table.php)。这包括一个表id:tablevisit。该表是动态生成的:它遍历数据库中的每一行。这是table.php
echo "<div id='tableContainer'>";
$con = new mysqli("localhost","sample","samplepass","sample");
$sql = "SELECT * FROM sampletable";
$i = 0;
$dyn_table = '<table border="1" cellpadding="10" class="visitorlist" id="tablevisit">';
$query = $con->query($sql);
while($row = $query->fetch_assoc()){
$id = $row['ID'];
$name = $row['address'];
$date = $row['date'];
$time = $row['time'];
$url = $row['visit_url'];
$urlstring = $row['visit_url'];
if($i % 3 == 0){
$dyn_table .= '<tr><td>'.$name.'</td>';
$dyn_table .= '<td>'.$date.'</td>';
$dyn_table .= '<td>'.$time.'</td>';
$dyn_table .= '<td class="tdshort"><a href='.$url.' target = "_blank" class=" tdoverflow">' . $_SESSION['cuttedurl'] . '</a></td>';
$dyn_table .= '<td><button type= "button" name = "' . $id . '" class="dynamixbutton navbar-button btn-danger btn" post_id="' . $id . '" type="submit" >CHAT</button></td>';
$dyn_table .= '<td>' . $id . '</td>';
}
else {
$dyn_table .= '<tr><td>'.$name.'</td>';
$dyn_table .= '<td>'.$date.'</td>';
$dyn_table .= '<td>'.$time.'</td>';
$dyn_table .= '<td><a href='.$url.' target = "_blank" class=" tdoverflow">' . $_SESSION['cuttedurl'] . '</a></td>';
$dyn_table .= '<td><button type= "button" name = "' . $id . '" class="dynamixbutton navbar-button btn-danger btn" post_id="' . $id . '" type="submit">CHAT</button></td>';
$dyn_table .= '<td>' . $id . '</td>';
}
$i++;
}
$dyn_table .='</tr></table>';
echo "</div>";
在main.php echo $dyn_table;
上调用。
现在,需要每隔x秒调用$ dyn_table。怎么做到这一点?
我试过刷新桌子,但我觉得每隔x秒调用$ dyn_table会更好
我已经尝试了this,this和this,但这对我没用。那些是html元素,而不是PHP变量。
有什么建议?建议,提示?
提前谢谢!
答案 0 :(得分:0)
据我了解你的问题,我相信你对ajax的运作方式一无所知。也许这可能对你有帮助。
在伪代码中,它看起来像这样:
whenajaxrequestwassuccessfull (var tabledata = getDataFromServerViaAjax('http://URL of The PHP File which echos a json formated data string')) {
var dataobject = convertjsontoobject(tabledata);
loop over the table {
tablerow->tablefield->setData(dataobject->somedetail)
}
}