Php 我希望在不重新加载页面的情况下,使用Ajax每隔一秒执行一次这个脚本
我希望在不重新加载页面的情况下,使用Ajax每隔一秒执行一次这个脚本 我不知道我应该做什么;以下是脚本:Php 我希望在不重新加载页面的情况下,使用Ajax每隔一秒执行一次这个脚本,php,ajax,Php,Ajax,我希望在不重新加载页面的情况下,使用Ajax每隔一秒执行一次这个脚本 我不知道我应该做什么;以下是脚本: $seconds=1; $sql = "SELECT * FROM " . $dbDatabase .".chat"; $lines = []; foreach($dbConnection->query($sql) as $row) { $line = '<span class="time-message">' . $row['when_send'] . '-' .
$seconds=1;
$sql = "SELECT * FROM " . $dbDatabase .".chat";
$lines = [];
foreach($dbConnection->query($sql) as $row) {
$line = '<span class="time-message">' . $row['when_send'] . '-' . '</span>';
$line .= '<label class="nick-message"><strong>' . $row['sender'] . ': ' . '</strong></label>';
//$lines[] = $line . ": " . $row['message'];
echo $line . $row['message'] . "<br/><hr/>";
}
$seconds=1;
$sql=“选择*FROM”$数据库“.chat”;
$lines=[];
foreach($dbConnection->query($sql)作为$row){
$line='.$row['when_send'.].-';
$line.='。$row['sender'].:'.';
//$lines[]=$line.:“$row['message'];
echo$行。$行['message']。“
”;
}
在基本表单中,您可以使用获取
setInterval( ()=>{
fetch( '/path/to/php/script.php' )
.then( r=>{
return r.text();
})
.then( data=>{
alert( data );
})
.catch( err=>{
alert(err);
})
}, 1000 * 10 );// every 10s
如果要使用下面这样的实用程序函数来简化DOM节点的创建,则可以生成新内容,而无需最初尝试擦除文档 : 注意:作为document.write写入文档流,调用 document.write在关闭(加载)的文档上自动调用 document.open,将清除该文档 然后可以像这样修改ajax函数(但未经测试)
它给我的数据每秒钟,但我不能打印在我的div。。。我尝试使用json_encode,因此我设置了我的脚本:
include("databaseCONNECTION.php");
$data = array();
foreach($dbConnection->query($sql) as $rows) {
array_push($data, array("when_send" => $rows['when_send'], "sender" => $rows['sender'], "message" => $rows['message']));
}
echo json_encode($data);
?>
// and this is my javascript script:
<script language="javascript">
setInterval( ()=>{
fetch( 'chat-data.php' )
.then( r=>{
return r.text();
})
.then( data=>{
for(i = 0; i < data.lenght; i++) {
document.write('<span class="time-message">', data[i]['when_send'], '- </span>');
document.write('<label class="nick-message"><strong>', data[i]['sender'], ': </strong></label>', data[i]['message'], '<br/><hr/>');
}
})
.catch( err=>{
alert(err);
})
}, 1000)
</script>
include(“databaseCONNECTION.php”);
$data=array();
foreach($dbConnection->query($sql)作为$rows){
数组推送($data,数组(“when\u send”=>$rows['when\u send'],“sender”=>$rows['sender'],“message”=>$rows['message']);
}
echo json_编码($data);
?>
//这是我的javascript脚本:
设置间隔(()=>{
获取('chat data.php')
.然后(r=>{
返回r.text();
})
。然后(数据=>{
对于(i=0;i”,数据[i]['sender'],“:”,数据[i]['message'],“
”);
}
})
.catch(错误=>{
警惕(err);
})
}, 1000)
您能详细说明一下吗?托特是什么?我想用Ajax每隔一秒执行一次这个脚本,而不需要重新加载页面以获得gve us mre info。你的脚本是用php编写的,你要求使用Ajax,你到底需要什么?我正在聊天,但它不会自动刷新。。所以我想使用Ajax…它是有效的,但是在另一个问题中使用文档解释了另一个问题。这样写是不正确的-您需要设置目标HTML元素的innerHTML
或textContent
setInterval( ()=>{
fetch( 'chat-data.php' )
.then( r=>{
return r.text();
})
.then( data=>{
/*
Without seeing the HTML this is pseudo-code. Change to suit
your HTML structure.
*/
let parent=document.getElementById('TARGET_ELEMENT_ID');
let record=create(null,{},parent);
Object.keys( data ).map( key=>{
let obj=data[ key ];
create('span',{'class':'time-message','text':obj.when_send},record);
create('label',{'class':'nick-message','text':obj.sender},record);
create(null,{'text':obj.message},record);
create('hr',{},record);
})
})
.catch( err=>{
alert(err);
})
}, 1000 );
include("databaseCONNECTION.php");
$data = array();
foreach($dbConnection->query($sql) as $rows) {
array_push($data, array("when_send" => $rows['when_send'], "sender" => $rows['sender'], "message" => $rows['message']));
}
echo json_encode($data);
?>
// and this is my javascript script:
<script language="javascript">
setInterval( ()=>{
fetch( 'chat-data.php' )
.then( r=>{
return r.text();
})
.then( data=>{
for(i = 0; i < data.lenght; i++) {
document.write('<span class="time-message">', data[i]['when_send'], '- </span>');
document.write('<label class="nick-message"><strong>', data[i]['sender'], ': </strong></label>', data[i]['message'], '<br/><hr/>');
}
})
.catch( err=>{
alert(err);
})
}, 1000)
</script>