2011-05-08 144 views
1
$('.editBtn').click(function(){//EDIT BUTTON EVENT 
     $.getJSON('edit.php?url='+encodeURI($(this).siblings('a').attr('id'))+'&action=edit',function(data){ 
      $.each(data, function(key, val) { 
       alert(key+': '+val); 
      }); 
     }); 
    });//EDIT BUTTON END 

,这里是有问题的PHP部分:JSON冗余数据检索

elseif($_GET['action']=='edit'){ 
$output=$mysql->getDb()->query("select * from video 
    where url='{$_GET['url']}'")->fetchAll(); 
header("content-type: application/json"); 
echo json_encode($output[0]); 
} 

什么情况是,当点击.editBtn按钮,警报弹出0:value0, 1:value1,...,然后再进入,但在某种程度上,我只希望它要name0:value0, name1:value1,...

发生了什么事?

p.s. PHP的独立运行:这里返回

{"url":"www.vimeo.com\/20721308","0":"www.vimeo.com\/20721308","title":"Dis-patch Festival R.I.P.","1":"Dis-patch Festival R.I.P.","description":"Sadly, the last goodbyes to the Dis-patch Festival Belgrade edition in this tribute \"R.I.P.\" video collage. The end is always the beginning...","2":"Sadly, the last goodbyes to the Dis-patch Festival Belgrade edition in this tribute \"R.I.P.\" video collage. The end is always the beginning...","country":"serbia","3":"serbia","postDate":"2011-05-07 05:56:04","4":"2011-05-07 05:56:04","views":null,"5":null}

+0

你可以独立运行edit.php并粘贴输出吗? – 2011-05-08 22:07:32

+0

是的。再看看上面的 – 2011-05-08 22:31:51

+0

所以你说它正在运行并且提醒所有事情两次?这一切似乎都对。也许你会连接两次点击处理程序?你有没有发布我们可以看到它的行动? – 2011-05-08 22:36:26

回答

0

不完全确定的格式。通常框架SQL对象返回的数据在它自己的对象格式设置。你可能会希望在SQL数据传递到一个数组对象,然后将数组json_encode返回给客户端。

$returnData = array(
    'name' => $output[0]->name, 
    'videopath' => $output[1]->videopath 
); 

echo json_encode(array('success'=>1, 'data'=>$returnData)); 
+0

这是完美的!非常感谢你 – 2011-05-08 22:41:18

+0

没有问题 - 留意你的原始数据类型与原生框架的数据类型 - 通常它们不会与其他语言兼容。我还建议在处理ajax时使用成功的数据键来处理响应:) – Atticus 2011-05-08 22:44:52

+0

如果您有任何文章/讨论引用我,我会很乐意阅读。 – 2011-05-08 22:47:05