#php #jquery #json
#php #jquery #json
Вопрос:
$('.editBtn').click(function(){//EDIT BUTTON EVENT
$.getJSON('edit.php?url=' encodeURI($(this).siblings('a').attr('id')) 'amp;action=edit',function(data){
$.each(data, function(key, val) {
alert(key ': ' val);
});
});
});//EDIT BUTTON END
и вот часть php, о которой идет речь:
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}
Комментарии:
1. ты можешь убежать edit.php самостоятельно и вставить вывод сюда?
2. То есть вы хотите сказать, что он проходит через все и предупреждает обо всем дважды? Все кажется правильным. Может быть, вы дважды подключаете обработчик щелчков? У вас это где-нибудь размещено, чтобы мы могли увидеть это в действии?
3. извините за недопонимание. я имел в виду, что я не хочу
number:value
появляться, но вместо этого толькоtitle:value
. заставил это работать с помощью хорошего совета Jobsz. Спасибо
Ответ №1:
Не совсем уверен в формате, который здесь возвращается.. Обычно объекты framework SQL возвращают набор данных в своем собственном объектном формате.. Вероятно, вы хотите передать данные SQL в объект array, а затем json_encode массив обратно вашему клиенту.
$returnData = array(
'name' => $output[0]->name,
'videopath' => $output[1]->videopath
);
echo json_encode(array('success'=>1, 'data'=>$returnData));
Комментарии:
1. Никаких проблем — следите за вашими примитивными типами данных в сравнении с типами данных, родными для вашей платформы — часто они будут несовместимы с другими языками. Я также предлагаю при работе с ajax использовать ключ данных успеха для обработки ответов 🙂
2. пожалуйста, если у вас есть какая-либо статья / обсуждение, на которое вы могли бы сослаться, я был бы рад прочитать.
3. Я хотел бы вам что-нибудь дать, но это просто основано на моем собственном опыте. Просто попробуйте думать о вызовах ajax как о событии установления связи с вашим клиент-сервером. Вы хотите убедиться, что безопасно использовать то, что вам предоставляет сервер, используйте идентификатор, если данные безопасны (не null и т.д.), Возможно, сообщение об ошибке вместе с ним.
4. спасибо, мне наверняка придется подробнее ознакомиться с jquery ajax api.