jQuery Backstretch-将php数组传递给javascript的问题
jQuery Backstretch - Issues passing php array to javascript?
我正在使用backstretch创建一个全屏背景幻灯片,使用wordpress页面中定义的图像。
我写了一个函数,可以将每个图像的src输出到一个数组。然而,我遇到了将这个php数组传递到javascript中的问题,或者可能是由于斜杠等原因导致字符串在javascript中解析的方式。
Backstretch需要像这样的图像阵列:
var images = [
"http://dl.dropbox.com/u/515046/www/outside.jpg"
, "http://dl.dropbox.com/u/515046/www/garfield-interior.jpg"
, "http://dl.dropbox.com/u/515046/www/cheers.jpg"
];
目前,我正在尝试urlencode,然后是json_encode,但它似乎不起作用:
$photos = get_post_images();
$photosArray = array();
foreach ($photos as $photo) {
$photosArray[] = $photo[0];
}
$photosArray = json_encode($photosArray);
其中$photo[0]是图像的url,如:
http://server/directory/file.jpg
然后在Javascript中:
var images = JSON.parse(<?=$photosArray?>);
正如这个stackoverflow问题所建议的那样,它给出了一个错误:
Uncaught SyntaxError: Unexpected token h
然后我试着简单地传递数组,但它总是逃脱斜杠:
http:'/'/server'/wp'/
有人能推荐一个解决方案吗?
谢谢!
// put single quotes around JSON string
var images = JSON.parse('<?=$photosArray?>');
我最终在PHP中将变量构建为字符串,然后在javascript中回显它。这不是我认为最理想的解决方案,但似乎没有其他解决方案:
$counter = 0;
foreach ($photos as $photo) {
$photos_js .= "'"".$photo[0]."'"";
$counter++;
if ($counter < count($photos)) {
$photos_js .= ",";
}
}
然后在Javascript中:
var images = [<?=$photos_js?>];
相关文章:
- javascript问题正文样式
- 将代码放入click函数时出现javascript问题
- 奇怪的javascript问题
- 选中复选框的Jquery/Javascript问题使用输入框操作将行从一个表添加到另一个表
- 多上传的JavaScript问题
- 使用YouTube iFrame API的IE中的JavaScript问题
- 关于函数的Javascript问题 - IIFE
- Javascript问题与下拉菜单上的单击事件有关
- JavaScript 问题 - 意外的令牌 (.
- Chrome 中的 JavaScript 问题
- 在javascript问题中应用复合css规则
- Javascript问题,flexslider脚本未加载
- document.write和document.innerHTML以及其他javascript问题之间有什么区别
- jQuery到纯javaScript问题
- javascript问题后的onblur和onfocus
- 谷歌地图API和JavaScript问题:-(
- 第三方javascript问题
- javascript问题中的全局变量
- 嵌套if的javascript问题
- 绑定的Javascript问题