Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/280.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/ionic-framework/2.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
Javascript jqueryajax-如何每隔几秒钟显示同一个表中的其他结果_Javascript_Php_Jquery_Ajax - Fatal编程技术网

Javascript jqueryajax-如何每隔几秒钟显示同一个表中的其他结果

Javascript jqueryajax-如何每隔几秒钟显示同一个表中的其他结果,javascript,php,jquery,ajax,Javascript,Php,Jquery,Ajax,目前我有静态显示,显示表中最后3项: 数据库表: id | question | answer ------------------------------------------------- 1 | Q? | A? 2 | Q? | A? 3 | Q?

目前我有静态显示,显示表中最后3项:

数据库表:

  id        |        question       |      answer  
 -------------------------------------------------
 1          |           Q?          |     A?
 2          |           Q?          |     A?
 3          |           Q?          |     A?
 4          |           Q?          |     A?
 5          |           Q?          |     A?
 6          |           Q?          |     A?
到目前为止,我使用PHP foreach显示了最后3项

我希望它将动态显示每3个项目与尼斯动画片,将永远循环

我如何使用ajax或其他什么工具来实现它?提前谢谢

编辑(删除旧代码)。


巴哈尔丁·阿扎尔米,这里是我所做的:

1。我创建了名为indexaskrefresh.php的新php文件,在该php文件中插入了以下php代码:

$query = "SELECT * FROM que limit " .$offset. "," .$pageSize ;
mysql_query("SET NAMES 'utf8'");

$result = mysql_query($query, $func->connection);

if(!$result) //ERROR IN YOUR SQL QUERY
return false;

if(mysql_num_rows($result)==0) //NO ROWS IN TABLE pages
return false;

while($row = mysql_fetch_array($result, MYSQL_ASSOC)) // CHANGE THE RESULT TO 2 DIMMENSIONAL ARRAY
{
     $returned_array[] = $row;
}

return $returned_array;
2。接下来,我在索引文件中创建了名为
ask
的新div,并在页面顶部创建了新的javascript标记(index.php):


//全局变量
var偏移=0;
var pageSize=3;
函数callMyPhpScript(){
var参数=新对象();
parameters.offset=偏移量;
parameters.pageSize=页面大小;
$.ajax(“modules/indexaskrefresh.php”,参数)
.完成(onDone)
.失败(onFail);
}
功能onDone(数据){
//如果未返回任何数据,则应重置偏移量
如果(data.length==0){
偏移量=0;
}否则{
$('#ask').empty.append(data.show('slow');
//我在这里假设数据是格式良好的
//php脚本返回的html代码
偏移量+=3;
}
}
$(函数(){
//应该在配置中移动。。。
var N=5000//将每5秒进行一次呼叫。
setInterval(callMyPhpScript,N);
});
应包含响应的div(在Index.php内):


כדאי לדעת :

没有发生任何事情,比如脚本不工作,没有发布任何东西,或者一些我不知道的事情。

所以我假设您希望每N秒调用一次PHP函数,并刷新最后3项

有一种方法可以做到这一点:

创建一个javascript函数,用于进行调用并发送偏移量和页面大小。 偏移量将是SQL查询中的起始id和页面大小限制:

// global vars
var offset = 0;
var pageSize = 3;


function callMyPhpScript() {
    var parameters = new Object();
    parameters.offset = offset;
    parameters.pageSize = pageSize;
    $.ajax("http://myhost:myport/pathToMyPhpFunction", parameters)
        .done(onDone)
        .fail(onFail);
}
在php脚本中,您应该获得解析参数的命令,并在SQL查询中使用它,如下所示:

$query = "SELECT * FROM que limit " .$offset. "," .$pageSize ;
// That will return records from offset+1 to pageSize
实现onDone函数,将结果附加到HTML代码中

function onDone(data) {
    // if no data was returned then you should reset the offset
    if ( data.length == 0 ) {
        offset = 0;
    } else {
        $('#myContainer').empty.append(data).show('slow');
        // I assume here that data is well formed 
        // html code returned by you php script
        offset += 3;
    }
}
然后在html代码中的某个地方,当加载页面时,调用setTimeout函数 要每N秒拨打一次电话:

$(function() {
    // should be move in configuration ...
    var N = 5000 // Call will be made every 5 seconds. 
    setInterval(callMyPhpScript,N);
});

如果你想要奇特的效果,我建议使用

Sry来延迟,我会纠正u,我希望它每次显示其他3项,例如:现在它的show id:1,2,3,然后几秒钟就会显示4,5,6,感谢你的帮助我刚刚编辑了代码,我现在向php脚本传递一个偏移量和一个页面大小参数来获取数据,并在php脚本不返回任何内容时重置偏移量。在最后一种情况下,这意味着没有更多的数据可获取。您还可以使用ajax调用的失败处理程序来重置偏移量,如果发生任何越界类型的异常,您的意思是像第一个脚本中那样的:$.ajax(“modules/indexaskrefresh.php”,parameters),我应该在php文件中放置查询函数吗?我也试过你的方法,但没有什么好的,没有错误,没有什么是的,这就是我的意思。你说什么都没发生是什么意思?你应该有一个php脚本的响应,至少有一个错误。。。php脚本响应的结构是什么?无响应,我将编辑我所做的步骤,再次感谢您。
function onDone(data) {
    // if no data was returned then you should reset the offset
    if ( data.length == 0 ) {
        offset = 0;
    } else {
        $('#myContainer').empty.append(data).show('slow');
        // I assume here that data is well formed 
        // html code returned by you php script
        offset += 3;
    }
}
$(function() {
    // should be move in configuration ...
    var N = 5000 // Call will be made every 5 seconds. 
    setInterval(callMyPhpScript,N);
});