在Javascript之后运行PHP代码时出现问题
基本上,这就是我正在做的: 我有一个flash/ajax文件上传器,用户可以选择x数量的照片并上传,然后通过外部php脚本将它们插入MYSQL数据库 在将它们插入数据库后,我希望在页面上显示它们,并允许用户编辑标签、标题等 但是,我不知道如何“实时更新”页面以显示正确的数据 以此为例: 上传完成后,将运行showFields()在Javascript之后运行PHP代码时出现问题,php,javascript,mysql,ajax,Php,Javascript,Mysql,Ajax,基本上,这就是我正在做的: 我有一个flash/ajax文件上传器,用户可以选择x数量的照片并上传,然后通过外部php脚本将它们插入MYSQL数据库 在将它们插入数据库后,我希望在页面上显示它们,并允许用户编辑标签、标题等 但是,我不知道如何“实时更新”页面以显示正确的数据 以此为例: 上传完成后,将运行showFields() function showFields() { var jsvar = '<?php echo getIDs(); ?>'; doc
function showFields() {
var jsvar = '<?php echo getIDs(); ?>';
document.getElementById('picndata').innerHTML += jsvar;
}
(邋遢我知道)
,那么它将无法工作,因为PHP是先运行的,因此它找不到任何结果,因为图像尚未上载
有什么想法吗?这行:
$str .= $row['size'] . "\r\n";
将导致JavaScript具有未终止的字符串文字
更改:
var jsvar = '<?php echo getIDs(); ?>';
var-jsvar='';
致:
var jsvar='使用ajax并为图像添加时间戳。
我个人有一个“刷新”函数,它通过setTimeout()定时调用get
在初始加载当前图像时,确定最新的图像时间戳。
在ajax中,查询具有时间戳>上一个“最新”时间戳的图像。如果得到任何结果,请更新页面,并重置新的“最新”变量。
如果上传功能也有一些返回,可以用来触发ajax,这将消除查看新图像的任何延迟
我还建议将时间戳存储在会话变量中,这样您就不会依赖用户输入进行查询
还可以处理其他用户可能上载到同一区域的并发性。这不是问题……问题是在加载页面后,上载发生在另一个php脚本上,因此getIDs()不会替换最新的ID,它将在页面加载时替换最新的ID
var jsvar = '<?php echo getIDs(); ?>';
var jsvar = '<?php echo str_replace("\r\n", "\\\r\n", trim(getIDs()) ?>';