【发布时间】:2011-07-05 04:40:26
【问题描述】:
我正在尝试从我的数据库中获取图像路径列表,并在 Jquery 和 Json 的帮助下尝试添加到我的网站。但是我在 php 中不使用t know why after encoding my string usingjson_encode`,它会改变它的路径并向我显示
[{"0":"user\/photogallery\/images\/members\/2\/2_1.jpg","src":"user\/photogallery\/images\/members\/2\/2_1.jpg"},{"0":"user\/photogallery\/images\/members\/2\/2_2.jpg","src":"user\/photogallery\/images\/members\/2\/2_2.jpg"}]
我只需要user/photogallery/images/members/2/2_2.jpg 部分来创建新的<img src ="user/photogallery/images/members/2/2_2.jpg " /> 组件。
这是我的 php 代码和脚本
$member_id = $GET['member_id'];
$files = find_all_photos($member_id);
$encoded = json_encode($files);
echo $encoded;
unset($encoded);
function find_all_photos($id)
{
db_connect();
$query = sprintf("SELECT src FROM photo_album_list WHERE user_id = '%s'",
mysql_real_escape_string($id));
$result = mysql_query($query);
$result = db_result_to_array($result);
return $result;
}
function db_result_to_array($result)
{
$res_array = array();
for ($count=0; $row = mysql_fetch_array($result); $count++)
{
$res_array[$count] = $row;
}
return $res_array;
}
还有脚本
$.get('photostack.php', {member_id:2} , function(data) {
console.log(data);
var items_count = data.length;
for(var i = 0; i < items_count; ++i){
var item_source = data[i];
var cnt = 0;
$('<img />').load(function(){
var $image = $(this);
++cnt;
resizeCenterImage($image);
$ps_container.append($image);
var r = Math.floor(Math.random()*41)-20;
if(cnt < items_count){
$image.css({
'-moz-transform' :'rotate('+r+'deg)',
'-webkit-transform' :'rotate('+r+'deg)',
'transform' :'rotate('+r+'deg)'
});
}
if(cnt == items_count){
$loading.remove();
$ps_container.show();
$ps_close.show();
$ps_overlay.show();
}
}).attr('src',item_source);
}
},'json');
【问题讨论】:
-
PHP 问题比 jQuery 问题要多得多。我已经添加了 PHP 标记,您可以考虑删除 jQuery 标记。
-
你是从服务器端得到它的吗?查看控制台上的响应
-
是的,这是重复的问题,但我也有一个问题。在我的路径中,它还会创建类似 "0":"user\/photogallery\/images\/members\/2\/2_1 .jpg","src":"user\/photogallery\/images\/members\/2\/2_1.jpg" 为什么不只是 src ?什么是 0?它也会重复。
-
重复可能是因为
mysql_fetch_array()的结果被定义为MYSQL_BOTH(默认)。来自php.net/manual/en/function.mysql-fetch-array.php - “通过使用 MYSQL_BOTH(默认),您将获得一个包含关联索引和数字索引的数组。”
标签: php jquery string json parsing