|
|
|
| Формирую ява-скриптом строку:
var str='str1'+"\n"+'str2'+"\n"+'str3'+"\n";
Перед отправкой просматриваю ее алертом: все нормально- переносы строк работают.
Отправляю ее на сервер аяксом:
my_req_ajax("send.php"+"?params="+str);
В файле send.php пишу echo $_GET['params'];
И получаю вот что: str1str2str3
Если пишу echo nl2br($_GET['params']);
то получаю то же самое:
str1str2str3
Куда деваются переносы строк? Ничего не понимаю... | |
|
|
|
|
|
|
|
для: coloboc66
(30.11.2006 в 10:10)
| | их надо кодировать urlencode() - там ведь есть спецсимвол: обратный слеш | |
|
|
|
|
|
|
|
для: elenaki
(30.11.2006 в 10:13)
| | А каков синтаксис? Я пишу так:
var str=urlencode(str);
Выскакивает ошибка: "Предполагается наличие объекта"... | |
|
|
|
|
|
|
|
для: coloboc66
(30.11.2006 в 10:26)
| | sorry. urlencode() - это PHP-шная функция. с JS надо как-то по-другому. а загнать \n в кавычки не получается? а если в кавычки загнать <br>? | |
|
|
|
|
|
|
|
для: elenaki
(30.11.2006 в 10:39)
| | В кавычки <br> загнать можно и все получится, но для безопасности мне нужно, чтобы клиент не мог вводить теги в поля. | |
|
|
|
|
|
|
|
для: coloboc66
(30.11.2006 в 10:26)
| | urlencode - это не из PHP случайно?
Попробуй так.
var str='str1'+"\\n"+'str2'+"\\n"+'str3'+"\\n";
|
Один слэш "съестся". | |
|
|
|
|
|
|
|
для: tuder
(30.11.2006 в 10:39)
| | Поставил перед n двойной слэш: "\\n"
Теперь при echo $_GET['params'] вижу:
str1\nstr2\nstr3\n
Но при echo nl2br($_GET['params']); вижу то же самое:
str1\nstr2\nstr3\n | |
|
|
|
|
|
|
|
для: coloboc66
(30.11.2006 в 10:55)
| | а как насчет передавать много параметров: ?str1=...&str2=...&str3=..., а потом разбирать URL
и выводить эти переменные в том виде, который вас устраивает? | |
|
|
|
|
|
|
|
для: elenaki
(30.11.2006 в 11:01)
| | Не хочется перекраивать скрипт. Вот если закодировать строку на кириллице методом encodeURIComponent(), то переносы строк работают, но РНР-скрипт выводит строку в нечитаемом виде(кракозяблики). Наверно на серверной стороне нужно строку чем-то раскодировать, а чем? | |
|
|
|
|
|
|
|
|
для: Саня
(30.11.2006 в 11:11)
| | --- | |
|
|
|
|
|
|
|
для: coloboc66
(30.11.2006 в 11:16)
| | В общем, чтоб долго не мучитья, сделал так: на клиентской стороне при формировании строки вместо "\n" везде поставил "|". А на серверной стороне при помощи str_replace просто меняю "|" на "<br>". Но остается непонятным вот что: в каких случаях при обработке кириллицы на серверной стороне (и на клиентской) возникают проблемы вообще? И отчего это зависит, может, от браузера? Я все скрипты пишу только под ИЕ, проблем с кириллицей при этом не имел никогда. Но вот когда-то написал на аяксе чат. Под ИЕ он работает без проблем, но ради любопытства попросил людей потестировать его с Оперы и их данные оказались нечитаемыми. Почему- я так и не понял. | |
|
|
|
|
|
|
|
для: coloboc66
(30.11.2006 в 12:04)
| | я проблемы с нелатинскими кодировками решила заголовками. в том файле на PHP, который
формирует результаты запроса и передает их обратно в браузер, надо поставить хедеры:
header("Content-type: text/plain; charset=windows-1251");
там еще были про no-cashe, но я их убрала, без них лучше | |
|
|
|
|
|
|
|
для: elenaki
(30.11.2006 в 12:13)
| | Что означает text/plain ? У меня стоит text/html | |
|
|
|
|
|
|
|
для: coloboc66
(30.11.2006 в 12:24)
| | Сообщает браузеру тип передаваемых даних. На основе этого типа браузер решает как отобразить документ.
Если text/html, данные направляются в html-парсер. Если text/plain, вывести как есть. Если image/jpeg, к работе подключается графическая библиотека... и так далее. | |
|
|
|