Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 08.11.2008, 21:47
Новичок на форуме
Отправить личное сообщение для blade-mscl Посмотреть профиль Найти все сообщения от blade-mscl
 
Регистрация: 13.10.2008
Сообщений: 7

Отправка многострочной текстовой переменной на сервер и обратный ответ
Доброй субботы ребят.
Опечатка "многострочной"!
П.С. администратору форума - Илье: плохо что нет возможности самому отредактировать название сообщения, или удалить его =)

Опытный пипл, подскажите пожалуйста
есть такой код
$fsource = fread($f, filesize($fn));
$json->source = "js_source = \"".$fsource."\";";


содержание переменной $fsource
Код:
<sapi:include href="subtemplates/header.tpl" />
<table border="0" cellspacing="0" cellpadding="0" class="std" style="width:100% !important;">
  <tr>
    <td style="text-align:center !important; vertical-align:middle !important;"><span style="font-size:35px; color:#CC0000;">
	  <a href="&http_path.value;" class="_404">
короче - это html с добавлением различных вставок.

Так вот вопрос: как передать этот текст файла корректно?

я принимаю его на стороне клиента в JS следующим образом:
eval(respondStructure.source);

естественно выдает ошибку так как пытается сделать eval некорректного выражения.
как с этим бороться?

такая же ошибка наблюдается когда передаю аналогичное содержимое из js к php. Пытался бороться вырезанием перевода строки
var source 	= new String(oEditor.GetHTML( true )) ;
return source.replace(/\n/gi, " ");

но безуспешно.

подскажите пожалуйста.

Последний раз редактировалось blade-mscl, 08.11.2008 в 21:53. Причина: опечатка в тексте
Ответить с цитированием
  #2 (permalink)  
Старый 08.11.2008, 23:53
Отправить личное сообщение для Octane Посмотреть профиль Найти все сообщения от Octane  
Регистрация: 10.07.2008
Сообщений: 3,873

А что такое «sapi:include»? Какой-то браузер это поймет? Если нет, тогда зачем это передавать в виде JSON, почему не просто, как текст?
Ответить с цитированием
  #3 (permalink)  
Старый 09.11.2008, 10:37
Новичок на форуме
Отправить личное сообщение для blade-mscl Посмотреть профиль Найти все сообщения от blade-mscl
 
Регистрация: 13.10.2008
Сообщений: 7

sapi:include это server-side инструкция, которую понимает моя CMF.
Передавать необходимо потому что страница работает без перезагрузки и потому что я незнаю как другим способом отправить из JS в PHP обратно содержимое подобного формата не использую form action.

Я использую
serverRequest("admin/services/get_fs_data.php", "param=open_template&tn="+T_list[id], getPHPResp, false);

/** 
* Create Request Object for various platforms
*/ 				

function createRequestObject() {
    var request = null;
    if(!request) try {
        request=new ActiveXObject('Msxml2.XMLHTTP');
    } catch (e){}
    if(!request) try {
        request=new ActiveXObject('Microsoft.XMLHTTP');
    } catch (e){}
    if(!request) try {
        request=new XMLHttpRequest();
    } catch (e){}
    return request;
}  

/** 
* Make server request
* 
* @param POST-request performing
* @param url  - Request address
* @param data - Parameters as a string
* @param  callback - (facultative) a callback-function
*/ 				

function serverRequest(url, data, callback, callback_argument) {
	url = "/controller/" + url;
    var request = createRequestObject(); 
    if(!request) return false;
    request.onreadystatechange  = function() { 
            if(request.readyState == 4 && callback) callback(request, callback_argument);
    };

    request.open('POST', url, true);
    request.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
	try {
		request.send(data);
	} catch (e) {
		alert('The server does not respond');
	}
    return true;
}
Ответить с цитированием
  #4 (permalink)  
Старый 10.11.2008, 12:15
Аватар для Snipe
Профессор
Отправить личное сообщение для Snipe Посмотреть профиль Найти все сообщения от Snipe
 
Регистрация: 06.05.2008
Сообщений: 765

XML Вам в помощь =)

eval надо применять, если используется JSON, например.
И уж тем более не надо его использовать при подготовке переменной для отправки на сервер.

И переменная точно в строку формируется? Если да, то как? (проверьте через typeof())

А при получении строки с html с сервера надо делать
нужный_див.innerHTML = ваша_html_строка;

Последний раз редактировалось Snipe, 10.11.2008 в 12:21.
Ответить с цитированием
  #5 (permalink)  
Старый 10.11.2008, 22:57
Новичок на форуме
Отправить личное сообщение для blade-mscl Посмотреть профиль Найти все сообщения от blade-mscl
 
Регистрация: 13.10.2008
Сообщений: 7

Цитата:
XML Вам в помощь =)

eval надо применять, если используется JSON, например.
И уж тем более не надо его использовать при подготовке переменной для отправки на сервер.

И переменная точно в строку формируется? Если да, то как? (проверьте через typeof())

А при получении строки с html с сервера надо делать
нужный_див.innerHTML = ваша_html_строка;
Честно говоря, не понял смысла вашего ответа.
Eval я и так использую с json - это видно из исходника.
при подготовке отправки на сервер и речи нет чтобы использовать eval - это бред.

вопрос в том, что когда я посылаю из PHP переменную значение которой буквально равно:
Код:
<sapi:include href="subtemplates/header.tpl" />
<table border="0" cellspacing="0" cellpadding="0" class="std" style="width:100% !important;">
  <tr>
    <td style="text-align:center !important; vertical-align:middle !important;"><span style="font-size:35px; color:#CC0000;">
	  <a href="&http_path.value;" class="_404">
javascript выдает ошибку
Ошибка: unterminated string literal
Источник: [url]http://miee/views/delivery/js/constructor.js[/url]
Строка 131, Символ 17
Исходный код:
				"ErrorMsg" : "LT_source = \'<sapi:include href=\"subtemplates/header_tabs.tpl\" />

потому что не может определить конец переменной.

В этом и заключается вопрос: как передать вышеприведенный фрагмент в переменной?
или вообще как его передать?

Не дожидаясь ответа рыскаю в стороне post запроса - и думаю найду решение там.
Пример - FCKEditor postscript пример приема неформатированных данных от js скрипта php скриптом. Кому интересно могу выложить.
Ответить с цитированием
  #6 (permalink)  
Старый 11.11.2008, 08:59
Аватар для Snipe
Профессор
Отправить личное сообщение для Snipe Посмотреть профиль Найти все сообщения от Snipe
 
Регистрация: 06.05.2008
Сообщений: 765

В любом случае XML стоит попробовать.

Можете показать, что приходит в ответе с сервера (целиком весь ответ, если можно)?
Просто проалертите до того как eval выполнить.

Что делает getPHPResp - тоже интересно?
Ответить с цитированием
  #7 (permalink)  
Старый 11.11.2008, 16:12
Новичок на форуме
Отправить личное сообщение для blade-mscl Посмотреть профиль Найти все сообщения от blade-mscl
 
Регистрация: 13.10.2008
Сообщений: 7

проблему решил
Всем спасибо. проблему решил использованием скрытого iframe'а.
а содержимое такого рода действительно нельзя передать при помощи переменных и eval.

Осталась нерешенная проблема обратной передачи, но думаю я её тоже в ближайшее время решу.
Ответить с цитированием
  #8 (permalink)  
Старый 11.11.2008, 16:13
Новичок на форуме
Отправить личное сообщение для blade-mscl Посмотреть профиль Найти все сообщения от blade-mscl
 
Регистрация: 13.10.2008
Сообщений: 7

всем спасибо
Всем спасибо. Проблему решил использованием скрытого iframe.
Средствами eval и переменных данную проблему решить нельзя.
Ответить с цитированием
Ответ



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

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