Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 18.01.2012, 18:29
Аспирант
Отправить личное сообщение для AquaGen Посмотреть профиль Найти все сообщения от AquaGen
 
Регистрация: 01.03.2009
Сообщений: 41

как использовать json
С json ничего не выходит. Надо типа новостей выводить.
Нигде ничего не нашел, единственное в примерах
$.getJSON('ajax/test.json', function(data) {
  var items = [];

  $.each(data, function(key, val) {
    items.push('<li id="' + key + '">' + val + '</li>');
  });

  $('<ul/>', {
    'class': 'my-new-list',
    html: items.join('')
  }).appendTo('body');
});


у меня сейчас такой файл:
Код:
{	
	"note":{
			  "title": "Singular sensation",
			  "text": "Beady little eyes",
			  "date": "Little birds pitch by my doorstep",
			  "comments": 1
			},
	"note":{
			  "title": "Singular sensation34",
			  "text": "Beady li54ttle eyes",
			  "date": "Little 65birds pitch by my doorstep",
			  "comments": 2
			},
}
И непонятно еще в массивах или объектах новости хранить или как, учебник по json есть где-нибудь?
ну вообщем такой файл, я код вроде изменил, но он ничего не выводит
$.getJSON('test.json', function(data) {
var items = [];

  $.each(data.note, function(key, val) {
    items.push('<li id="' + key + '">' + val + '</li>');
  });

  $('<ul/>', {
    'class': 'my-new-list',
    html: items.join('')
  }).appendTo('#blog');


});

мне надо сделать чтобы все записи выводились по шаблону, а нигде примера даже не нашел
Ответить с цитированием
  #2 (permalink)  
Старый 18.01.2012, 18:41
Кандидат Javascript-наук
Отправить личное сообщение для Nightmare Посмотреть профиль Найти все сообщения от Nightmare
 
Регистрация: 16.04.2010
Сообщений: 133

if (isset($_POST['some_ajx_data'])) {
    $_data = $_POST['some_ajx_data'];
    //TODO: save in db or else

    header('Content-type: application/json');
    json_encode(array('result' => true));
}


$.ajax({
    url: 'ajax.php',
    data: {name: 'John'},
    dataType: 'json',
    success: function(data) {
        try {
            alert('result of operation is:', data.result)
        } catch(e) {
             // error
        }
        finally {
             alert('ajax happened...');
        }
    }
})


JS не может открывать файлы, из-за безопасности(не считаю каких-то версий мозиллы). Идет запрос, приходит ответ. Не более и не менее.
Ответить с цитированием
  #3 (permalink)  
Старый 18.01.2012, 19:29
Аватар для B@rmaley.e><e
⊞ Развернуть
Отправить личное сообщение для B@rmaley.e><e Посмотреть профиль Найти все сообщения от B@rmaley.e><e
 
Регистрация: 11.01.2010
Сообщений: 1,810

Сообщение от AquaGen
учебник по json есть где-нибудь?
Какой учебник? JSON — не более чем формат хранения данных, он целиком описывается в нескольких параграфах и картинках на json.org. Почитайте, кстати.
Ответить с цитированием
  #4 (permalink)  
Старый 19.01.2012, 10:37
Аспирант
Отправить личное сообщение для AquaGen Посмотреть профиль Найти все сообщения от AquaGen
 
Регистрация: 01.03.2009
Сообщений: 41

что-то ничего не понял во втором посте. php еще зачем-то.
если в test.json
Цитата:
{
"title": "Singular sensation",
все нормально работает.
а если в нем
Цитата:
{
"note":{
"title": "Singular sensation",
то не знаю как сделать.
Ответить с цитированием
  #5 (permalink)  
Старый 19.01.2012, 10:39
Аспирант
Отправить личное сообщение для AquaGen Посмотреть профиль Найти все сообщения от AquaGen
 
Регистрация: 01.03.2009
Сообщений: 41

мне надо просто вывести из файла аяксом новости (с jquery), неужели этого никто никогда не делал? нигде примера найти не могу
Ответить с цитированием
  #6 (permalink)  
Старый 19.01.2012, 11:07
Лаборант :-)
Отправить личное сообщение для Pavel M. Посмотреть профиль Найти все сообщения от Pavel M.
 
Регистрация: 08.11.2011
Сообщений: 806

ниже простой вывод в html строку

<!DOCTYPE html>
<html>
<head>
	<meta http-equiv="content-type" content="text/html; charset=UTF-8">
	<title> - jsFiddle demo</title>
	<script type='text/javascript' src='http://code.jquery.com/jquery-git.js'></script>
	<script>
	$(function(){

		var data = {   
			"note1": {
					  "title": "Singular sensation",
					  "text": "Beady little eyes",
					  "date": "Little birds pitch by my doorstep",
					  "comments": 1
			},
			"note2": {
					  "title": "Singular sensation34",
					  "text": "Beady li54ttle eyes",
					  "date": "Little 65birds pitch by my doorstep",
					  "comments": 2
			}
		};

		var htmlStr = '<ul>'; // здесь формируем html

		$.each(data, function(key, val) {
			htmlStr += '<li>' + key;
			htmlStr += '<ul>';
			$.each(val, function(key, val) {
				htmlStr += '<li>' + key + ': ' + val + '</li>';
			});
			htmlStr += '</ul>';
			htmlStr += '</li>';
		});

		htmlStr += '</ul>';
			
		$('body').html(htmlStr);

	});

	</script>
</head>
<body></body>
</html>
Ответить с цитированием
  #7 (permalink)  
Старый 19.01.2012, 11:19
Аспирант
Отправить личное сообщение для AquaGen Посмотреть профиль Найти все сообщения от AquaGen
 
Регистрация: 01.03.2009
Сообщений: 41

спасибо
Ответить с цитированием
  #8 (permalink)  
Старый 19.01.2012, 11:33
Аспирант
Отправить личное сообщение для AquaGen Посмотреть профиль Найти все сообщения от AquaGen
 
Регистрация: 01.03.2009
Сообщений: 41

еще что-то не получается
$.getJSON('test.json', function(data) {

  $.each(data, function(key, val) {
		
		 $("#blog").append("<div class='bigblockcontent'><span class='title'><a href='/?do=news&id="+key+"'>"+val['title']+"</a></span><span class='date'>"+val['date']+"</span><span class='act'><ul><li>ответить</li><li>рассказать</li></ul><span class='open'><a href='{tweet_url}'>открыть</a></span></span><p class='text'>"+val['text'].substring(0,200)+"</p><p class='readnews'>"+val['text']+"</p></div>");

  });

});

$("p").click(function(){
	alert();
});

вот не работает на <p> которые добавляются в код с помощью функции выше alert(); да и вообще к стилям не могу применить .click(function() и к id, не работает.
Ответить с цитированием
  #9 (permalink)  
Старый 19.01.2012, 11:40
Лаборант :-)
Отправить личное сообщение для Pavel M. Посмотреть профиль Найти все сообщения от Pavel M.
 
Регистрация: 08.11.2011
Сообщений: 806

Сообщение от AquaGen
вот не работает на <p> которые добавляются в код с помощью функции выше alert();
alert - пустой, надо alert(123); например написать
Ответить с цитированием
  #10 (permalink)  
Старый 19.01.2012, 11:42
Лаборант :-)
Отправить личное сообщение для Pavel M. Посмотреть профиль Найти все сообщения от Pavel M.
 
Регистрация: 08.11.2011
Сообщений: 806

Сообщение от AquaGen
а и вообще к стилям не могу применить .click(function() и к id, не работает.
и обработчики надо добавлять после того как html загружен
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как использовать Ext JS и Ext Core вместе? Ichigeki ExtJS 3 04.07.2011 12:10
jQuery. Обработка ошибок и JSON. mma_mma jQuery 3 19.07.2010 12:10
О наследовании событий, или как корректно его отменить. JCShen Events/DOM/Window 8 09.02.2010 00:00
Как кроссбраузерно использовать "watch" METHOD maxval Javascript под браузер 7 06.01.2010 21:56