ecshop中 php json问题

我用的Ecshop程序做的商城,现要用到json,在网上找的一些代码:

elseif ($action == 'collection_list1')
{
include_once(ROOT_PATH . 'includes/lib_clips.php');
$page = isset($_REQUEST['page']) ? intval($_REQUEST['page']) : 1;

$record_count = $db->getOne("SELECT COUNT(*) FROM " .$ecs->table('collect_goods').

"WHERE user_id='$user_id' ORDER BY add_time DESC");
$pager = get_pager('user.php', array('act' => $action), $record_count, $page);
$smarty->assign('pager', $pager);
$smarty->assign('goods_list', get_collection_goods($user_id, $pager['size'], $pager['start']));
$smarty->assign('url', $ecs->url());
$lang_list = array(
'UTF8' => $_LANG['charset']['utf8'],
'GB2312' => $_LANG['charset']['zh_cn'],
'BIG5' => $_LANG['charset']['zh_tw'],
);
$smarty->assign('lang_list', $lang_list);
$smarty->assign('user_id', $user_id);
$goods_id = empty($_GET['goods_id']);
$arr_a = array(

"returncategory" =>$user_id,
"data" => array(
"newslist" => array(
array(
"title" => urlencode("$goods_name"),
"image" => "$goods_img",
"source" => urlencode("$goods_id"),
"commentcount" => $goods_cat,
"newsid" => 10
),
),
"totalnum" => 10
),
);
echo urldecode(json_encode($arr_a));
},运行user.php?act=collection_list1 得到:{"returncategory":"66","data":{"newslist":[{"title":"(1)","image":"(2)","source":"","(3)":120,"newsid":10}],"totalnum":10}},括号内没有值,比如:(2)应该是$goods_img的值,如能解决本人以50人民币以示感谢!!本人财富值不够了

第1个回答  2015-01-13
"title" => urlencode("$goods_name"),
"image" => "$goods_img",
"source" => urlencode("$goods_id"),

你能不能把那个双引号取消先

"title" => urlencode($goods_name),
"image" => $goods_img,
"source" => urlencode($goods_id),追问

这个取消后会得到一个true,主要是提取不到$goods_id值,这代码应该怎么写,$goods_id是数据库的表字段的数据ID

追答

$goods_id = empty($_GET['goods_id']);

你这个不就是验证 $_GET['goods_id'] 这个是否为空值嘛
返回 true 就是对了呀

要不你改成

if(empty($_GET['goods_id'])){
$goods_id => $_GET['goods_id'];
}

追问

改成这样运行不了,表示错误:Parse error: syntax error, unexpected T_DOUBLE_ARROW in D:\WWW\shop\user.php on line 1038

追答

可能是我上面的写法有问题

我的意思是 $goods_id = empty($_GET['goods_id']); 你这句得到的就是 true 或者 flase

你这个 $goods_id 并没有赋值
你要给这个赋一个正确的值

比如 $goods_id = $_GET['goods_id'];

追问

我的意思是,我对这个不怎么懂,我现在要的是$goods_id能取到数据库goods_id字段里的值

追答

如果你有这个字段 那么 $goods_id = empty($_GET['goods_id']);
这段删除掉试一试

因为你知道你类中的结构是什么样子的

或者直接改成 $goods_id = $_GET['goods_id'];

追问

对不起了点错了,本来是采纳你的,不知道什么原因点到下面的了...我用$goods_id=insert_history();解决了,谢谢了

追答

没事 我就说是这句出问题的 $goods_id

第2个回答  2015-01-13
这东西和json_encode没有关系,你直接打印下你的数据$arr_a ,如果这个东西是对的,你的json返回值就是对的了本回答被提问者采纳

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网