在Javascript之后运行PHP代码时出现问题
Issue running PHP code after Javascript
基本上,这就是我正在做的:我有一个flash/ajax文件上传器,用户可以选择x张照片并上传,然后通过外部php脚本将它们插入MYSQL数据库。
在它们被插入数据库后,我想在页面上显示它们,并允许用户编辑标签、标题等。
然而,我不知道如何"实时更新"页面以显示正确的数据
举个例子:showFields((在上传完成后运行;
function showFields() {
var jsvar = '<?php echo getIDs(); ?>';
document.getElementById('picndata').innerHTML += jsvar;
}
如果我的getID只返回一个静态值,比如"测试",这将起作用
但如果我让它这样做:
function getIDs() {
$SQL = "SELECT * FROM `slides` ORDER BY `sid` DESC";
$results = mysql_query($SQL);
$row = mysql_fetch_assoc($results);
$slide = $row['sid'];
$SQL = "SELECT * FROM `slides` WHERE `sid` = $slide";
$results = mysql_query($SQL);
$str;
while ($row = mysql_fetch_array($results)) {
$str .= $row['size'] . "'r'n";
}
return $str;
}
(我知道很草率(
,然后它将不起作用,因为PHP是先运行的,所以它找不到任何结果,因为图像还没有上传!
有什么想法吗?
此行:
$str .= $row['size'] . "'r'n";
将导致您的JavaScript具有未终止的字符串文字。
更改:
var jsvar = '<?php echo getIDs(); ?>';
收件人:
var jsvar = '<?php echo str_replace("'r'n", "'''r'n", trim(getIDs()) ?>';
这将在适当的位置放置斜杠,以便JavaScript有效。或者,您可以用空格或逗号或任何最适合您的代码的东西来完全替换换行符,而不是添加反斜杠。
使用ajax并为图像添加时间戳
我个人有一个"刷新"函数,它是通过setTimeout((定时调用的。
在初始加载当前图像时,确定最新的图像时间戳。在ajax中,查询时间戳>上一个"最新"时间戳的图像。如果得到任何结果,请更新页面,并重置新的"最新"变量。
如果您的上传函数有一些返回,可以用来触发ajax,这将消除查看新图像的任何延迟。
我还建议将时间戳存储在会话变量中,这样您的查询就不会依赖于用户输入。
还处理其他用户可能正在上传到同一区域的并发性。
相关文章:
- 如何消除代码中的未定义和其他问题
- JavaScript代码问题:我正在将对象转换为数组
- 无法运行php代码,有角度路由问题
- 什么'这个javascript代码getElementById有问题
- Javascript/JQuery删除代码中的父TR问题
- 此nodeValue替换代码有什么问题
- 我的CSS/Javascript下拉菜单测试代码出了什么问题
- 这个代码出了什么问题?(Jquery)
- 简单的Javascript代码问题
- JQuery代码语法问题?(“不允许内联控制结构”)
- 我的代码很完美,但我现在不知道为什么我发现了问题
- Html、css和jQuery.我的代码有问题
- 鼠标事件,我的代码出了什么问题
- 如果调试器关闭,Internet Explorer将出现运行代码问题
- 我的JavaScript代码的问题在哪里
- 此代码中动态生成选择框有什么问题
- 云代码的解析服务器问题
- 这个 ajax.js 代码有什么问题
- JS代码有什么问题,让我知道代码是否可以改进
- 我的 Browserify JavaScript 代码有什么问题