Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/262.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ajax/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 我希望在不重新加载页面的情况下,使用Ajax每隔一秒执行一次这个脚本_Php_Ajax - Fatal编程技术网

Php 我希望在不重新加载页面的情况下,使用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'] . '-' .

我希望在不重新加载页面的情况下,使用Ajax每隔一秒执行一次这个脚本

我不知道我应该做什么;以下是脚本:

$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>