Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #11 (permalink)  
Старый 23.05.2010, 12:11
Аватар для Gozar
Отправить личное сообщение для Gozar Посмотреть профиль Найти все сообщения от Gozar
 
Регистрация: 07.06.2007
Сообщений: 7,504

Сообщение от micscr Посмотреть сообщение
Суть не меняется - переделывать в js надо
var x = 'fff\
dffdf\
ffdfddf ';
var y = 'fff' + '\n' + 'dffdf' + '\n' + 'ffdfddf ';
alert(x == y);
суть разная, отсутствовать ≠ экранировать. Пример этот вообще к чему?
var x = 'fff\
dffdf\
ffdfddf ';
var y = 'fff' + '\n' + 'dffdf' + '\n' + 'ffdfddf ';
alert([x,y]);

Сообщение от micscr Посмотреть сообщение
А если надо просто куски html подгружать - xml.
а ещё проще html
Ответить с цитированием
  #12 (permalink)  
Старый 23.05.2010, 13:22
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

Сообщение от micscr
например в строковых значениях должны отсутствовать символы перевода строк
Чё за бред? Если у вас есть строка JSON, то там нет переводов строк (не экранированных), если там есть переводы строк -- это не JSON. Также можно сказать, что у XML есть свои трудности, например, & надо экранировать.
Ответить с цитированием
  #13 (permalink)  
Старый 23.05.2010, 15:06
Аватар для micscr
Профессор
Отправить личное сообщение для micscr Посмотреть профиль Найти все сообщения от micscr
 
Регистрация: 10.09.2009
Сообщений: 1,571

Может мы о разном говорим?
Имею обработчик ajax-запроса:
$str = "Каждая
в своей
строке";
if (isset($_POST['how'])) {
	$how = $_POST['how'];
	if ($how == 'json') {
          // передаю json - экранирую
	  echo 'var x = "' . str_replace("\r\n" , "\\\r\n" , $str) . '";';
	} else {
          // передаю html
          echo '<div>' . $str . '</div>';
    }
}


В textarea мне надо получить этот текст (состоящий из 3-х строк)

Вот запрос на html:
function whatdo()
{
    // действия
  $.post('./listener.php' , {how : 'html'}, function(data){
	var txt = $(data).text();
	$('textarea').val(txt); // получим как в php было - три строки
  });
}

- все ОК.

Вот запрос на json:
function whatdo2()
{
    // действия
  $.post('./listener.php' , {how : 'json'}, function(data){
	try {
	  eval(data);
	  $('textarea').val(x); // получим все в одну строку
	} catch(e) {
	  alert('ошибка');
	} 

  });
}

- отрабатывает без ошибки, но результат в textarea - одна слитая строка, а не три. Т.е. по простому сделать(как вариант 1.) не выходит. Или что делаю не так?
Ответить с цитированием
  #14 (permalink)  
Старый 23.05.2010, 16:45
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

Сообщение от micscr
07 // передаю json - экранирую
08 echo 'var x = "' . str_replace("\r\n" , "\\\r\n" , $str) . '";';
Это не json. Вот json
json_encode($str);
А вы просто слэши в конце каждой строки поставили.
Ответить с цитированием
  #15 (permalink)  
Старый 23.05.2010, 17:23
Аватар для micscr
Профессор
Отправить личное сообщение для micscr Посмотреть профиль Найти все сообщения от micscr
 
Регистрация: 10.09.2009
Сообщений: 1,571

спс, буду знать.
Ответить с цитированием
  #16 (permalink)  
Старый 24.05.2010, 01:47
Аватар для B~Vladi
Модератор Всея Форума
Отправить личное сообщение для B~Vladi Посмотреть профиль Найти все сообщения от B~Vladi
 
Регистрация: 14.05.2009
Сообщений: 4,021

Если использование XSLT упростит задачу, то конечно лучше XML, например подгрузка дерева. В общем всё от ситуации зависит.
Ответить с цитированием
  #17 (permalink)  
Старый 28.05.2010, 22:20
Аватар для mycoding
NodeJS developer - ушел
Отправить личное сообщение для mycoding Посмотреть профиль Найти все сообщения от mycoding
 
Регистрация: 06.01.2010
Сообщений: 1,022

Пробовал загружать данные в json с сайта, они приходят в виде строки.
Сделал myjson = eval(json);
Выдаёт :
Ошибка: invalid label
Исходный код:
{subject:"tfkp",title:"Сборник задач по теории функции комплексного переменного",author:"Волковынс кий, Лунц, Араманович",yearOfPublish:"2006"}

JSON :
{subject:"tfkp",title:"Сборник задач по теории функции комплексного переменного",author:"Волковынс кий, Лунц, Араманович",yearOfPublish:"2006"}

Пробовал и myjson = eval('('+json+')');

Просто я первый раз json загружаю с сайта, раньше html уже готовый загружал.
А теперь появилась необходимость в JSON и что-то не разбирусь.
НУ вроде получилось запустить myjson = eval('('+json+')');
НО как теперь к свойствам обратится ? ЧТо то
myjson.title не работает.

Последний раз редактировалось mycoding, 28.05.2010 в 22:33.
Ответить с цитированием
  #18 (permalink)  
Старый 28.05.2010, 22:32
Отправить личное сообщение для Octane Посмотреть профиль Найти все сообщения от Octane  
Регистрация: 10.07.2008
Сообщений: 3,873

Сообщение от mycoding
Пробовал и myjson = eval('('+json+')');
Ну и все работает:
alert(eval('({subject:"tfkp",title:"Сборник задач по теории функции комплексного еременного",author:"Волковынс кий, Лунц, Араманович",yearOfPublish:"2006"})').subject);


Сообщение от mycoding
JSON :
{subject:"tfkp",title:"Сборник задач по теории функции комплексного переменного",author:"Волковынс кий, Лунц, Араманович",yearOfPublish:"2006"}
Это не JSON. Вот JSON:
alert(JSON.stringify({subject:"tfkp",title:"Сборник задач по теории функции комплексного переменного",author:"Волковынс кий, Лунц, Араманович",yearOfPublish:"2006"}));


И в современных браузерах есть специальный метод JSON.parse:
alert(JSON.parse('{"subject":"tfkp","title":"Сборник задач по теории функции комплексного переменного","author":"Волковынс кий, Лунц, Араманович","yearOfPublish":"2006"}').subject);

Последний раз редактировалось Octane, 28.05.2010 в 22:38.
Ответить с цитированием
  #19 (permalink)  
Старый 28.05.2010, 22:36
Аватар для mycoding
NodeJS developer - ушел
Отправить личное сообщение для mycoding Посмотреть профиль Найти все сообщения от mycoding
 
Регистрация: 06.01.2010
Сообщений: 1,022

Всё заработало, огромное спасибо.
Ответить с цитированием
  #20 (permalink)  
Старый 28.05.2010, 23:52
Аватар для B~Vladi
Модератор Всея Форума
Отправить личное сообщение для B~Vladi Посмотреть профиль Найти все сообщения от B~Vladi
 
Регистрация: 14.05.2009
Сообщений: 4,021

Сообщение от Kolyaj
Чё за бред?
Это не бред.
Сообщение от Kolyaj
то там нет переводов строк (не экранированных)
Бред.
Сообщение от Kolyaj
если там есть переводы строк -- это не JSON
Да, но опять же если на клиент всё поступает в виде JSON - как быть? "\n" не помогают.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как удалить из памяти весь XML документ? EisBerg Events/DOM/Window 1 03.04.2010 14:45
Изменение текста в XML (не удаленный, но править нельзя) Qwe2Qwe Общие вопросы Javascript 3 28.02.2010 12:44
30(1|2) редирект от сервера. Или как лучше сделать редирект при верной отсылке форма. pizzZ AJAX и COMET 2 18.02.2010 09:06
Что выбрать XML или JSON для передачи Ajax - ом из PHP в JS Gozar Общие вопросы Javascript 20 16.08.2009 23:36
Не получается загрузить xml из php Alekson jQuery 2 08.07.2009 09:33