Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/265.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,所以这是一个奇怪的问题,你可能会认为它是另一种方式,但它来了 我使用了一个名为Laravel的框架。并不是说这有什么区别,但我认为值得一提。在这个框架上,我有一个web应用程序,可以对相册中的图片进行评级 上传的图片来自android应用程序。图片由手机制作,手机将图片转换为base64并发送到web应用程序。它发送的输入正在被我的web应用程序中的控制器操作接收 以上方法确实有效!但是现在我想在开始使用控制器操作时触发PHP中的某种事件。因此,当上传图片时,使用web应用程序的用户会看到相册中

所以这是一个奇怪的问题,你可能会认为它是另一种方式,但它来了

我使用了一个名为Laravel的框架。并不是说这有什么区别,但我认为值得一提。在这个框架上,我有一个web应用程序,可以对相册中的图片进行评级

上传的图片来自android应用程序。图片由手机制作,手机将图片转换为base64并发送到web应用程序。它发送的输入正在被我的web应用程序中的控制器操作接收

以上方法确实有效!但是现在我想在开始使用控制器操作时触发PHP中的某种事件。因此,当上传图片时,使用web应用程序的用户会看到相册中添加了一张新图片

有人能为我指出正确的方向吗


非常感谢。

好吧,你可以从这个网站得到启发,在web应用程序的顶部放置一个条,通知用户更改


或者创建一个重新加载按钮,该按钮亮起并指示更改的数量。当用户单击该按钮时,可以重新加载图库。

设置轮询器,每X秒检查一次新图像。如果有新图像,则显示它

这就是stackoverflow处理新答案的方式。如果您检查Firebug中的console选项卡,您将看到它每隔30秒轮询一次

使用jQuery的示例:

setInterval(function() {
    $.getJSON('/check-for-images', function(data) {
        if (data instanceof Array) {
            $.each(data, function(i, image) {
                $('<img/>').attr('src', image).appendTo('#container');
            }
        }
    });
}, 30000);

我认为你最好的选择可能是研究异步上传你的图像,然后运行一个回调函数,在成功后更新页面。但是当Android asynctask需要url时,我如何异步上传图像?我认为这在应用程序端是不可能的,因此必须在web应用程序端进行处理。web应用程序的唯一触发器是控制器函数,它处理从手机发送的base64字符串。谢谢,我已经知道这个解决方案,但我认为它不是一个很好的解决方案。我非常喜欢的一个解决方案是websockets,但它确实需要一个nodejs服务器或其他东西。我只有一个带有PHP的Apache服务器。Ratchet是一个用于PHP的web套接字库。只需检查与web套接字和使用您的应用程序的手机的兼容性。@Jack我不认为不使用这种标准方法是不可接受的。它有什么不好的地方?因为它不断检查新的数据库条目,即使没有。只有当有新条目时,websocket才会更新。但是如果没有别的方法,我就得用你的方法。我只是不喜欢不必要的请求。
$result = query('SELECT name FROM images WHERE date > :lastUpdated', $lastUpdated);
echo json_encode(fetchArray($results));