|
|
|
| 1. Как правильно пересылать AJAX запрос к серверу и обратно. НЕ ТЕРЯЯ РУССКОЙ КОДИРОВКИ. И чтобы она не менялась по ходу дела.
Эспериментирую с AJAX посредством javaScript и PHP. Чтобы прислать что-либо из PHP в "приложение"(или на страницу) надо установить правильный заголовок пересылаемого файла(как при пересылке почтовых сообщений). Но всё равно значёк "+" куда-то исчезает. Как бы сделать так, чтобы не исчезал?(кодировка windows-1251)
При пересылке в XML форме русский шрифт вроде сохраняется, но сама структура XML запроса разрушается подгружаемой рекламой.
Кроме этого, как пересылать русский текст в POST и GET AJAX запросах в PHP(у меня пересылается, но "по получению" кодировка автоматически меняется на непойми какую. Хранится "там" в русском виде(в тексте, а не базе данных). Но уже обратно получается белиберда).
2. Можно ли СКРИПТОВО менять url строку браузера БЕЗ перезагрузки страницы?
Допустим, нажимаешь кнопку, подгружается след. страница. Само-собой так как AJAX -то перезагрузки страницы нет. НО. Допустим надо перейти на определённую страницу по url. Для этого можно сделать страницу *.php , по URL и GET выбирается, какой AJAX запрос запустить в автозагрузке.
Но при этом было бы удобнее, чтобы, если вы переходите по AJAX запросу без перезагрузки, URL менялся бы соответственно тому, куда вы перешли. Но при этом, чтобы страница не перезагружалась. | |
|
|
|
|
|
|
|
для: Sever
(12.12.2009 в 20:26)
| | >Допустим, нажимаешь кнопку, подгружается след. страница. Само-собой так как AJAX -то перезагрузки страницы нет. НО. Допустим надо перейти на определённую страницу по url. Для этого можно сделать страницу *.php , по URL и GET выбирается, какой AJAX запрос запустить в автозагрузке.
Но при этом было бы удобнее, чтобы, если вы переходите по AJAX запросу без перезагрузки, URL менялся бы соответственно тому, куда вы перешли. Но при этом, чтобы страница не перезагружалась.
Как мне сделать "что-то", но чтобы никто не догадался, что я именно "что-то" сделал?
Это - маразм в степени ужас. | |
|
|
|
|
|
|
|
для: АЯ
(12.12.2009 в 20:46)
| | Это расширенное объяснение, чтобы было понятно.
Если вам не понятно в заговловке написано:
Как изменить URL строку браузера скриптово без перезагрузки страницы.
Имеется в виду javaScript.
Так понятнее? | |
|
|
|
|
|
|
|
для: Sever
(12.12.2009 в 21:14)
| | никак | |
|
|
|
|
|
|
|
для: Sever
(12.12.2009 в 21:14)
| | >Так понятнее?
Естественно, что ТАК понятнее.
Если нажать на ссылку и перейти на другой URL - то это нормально.
Но если задаться вопросом - как перейти на другой URL без перезагрузки страницы, но затем вам надо, чтобы URL показал, что перезагрузка всё же имела место быть - иначе, чем ИДИОТИЗМ, это назвать нельзя.
Так что не обижайтесь, если вас называют ИДИОТОМ - вы он и есть. | |
|
|
|
|
|
|
|
для: АЯ
(12.12.2009 в 21:31)
| | ">Если нажать на ссылку и перейти на другой URL - то это нормально"
Если это не AJAX, то нормально. А если AJAX, то нафиг?
>но затем вам надо, чтобы URL показал, что перезагрузка имела место быть
1. Об этом подробно написано.
2. Для того, что только дебилы грузят всю страницу ради того, чтобы изменить часть её. А перейти на определённую структуру страницы можно по URL. Это может быть удобным.
3. Для того, что AJAX технология позволяет переходить по страницам без их перезагрузки. Иначе нафига была бы нужна AJAX технология?
>Так что не обижайтесь, если вас называют ИДИОТОМ - вы он и есть.
Не обижайся. Но тебя, кажется, сама природа обидела. | |
|
|
|
|
|
|
|
для: АЯ
(12.12.2009 в 21:31)
| | я так понимаю он имеет в виду ajax загрузку страницы как на Gmail.com? | |
|
|
|
|
|
|
|
для: flaers
(12.12.2009 в 22:13)
| | >я так понимаю он имеет в виду ajax загрузку страницы как на Gmail.com?
Он имеет в виду, что тема для тех, кто умеет читать.
Для тех, кто не умеет объясняю ещё раз:
1. Я НЕ открыал тему "зачем в природе существует аякс".
2. Я НЕ открывал тему "зачем мне нужно то или это".
3. Я НЕ открывал тему "оно похоже на то как там или как здесь".
Я задал 2 конкретных вопроса:
1. Как осуществить передачу русской кодировки AJAX технологией методами POST и GET или принять её обратно без потерь символов или без преобразования в трудночитаемые форматы кодировок.
2. Как скриптово изменить(если это возможно) URL строки браузера без перезагрузки страниц.
Раз не знаешь НЕ ОТВЕЧАЙ.
Это тоже плохопонятно кому-то?
Я могу ещё более подробно и совсем на пальцах объяснить "для чего это и почему это", хотя к теме это не относится. Но для этого я теперь должен увидеть заинтересованность.
А пока я вижу понты типов, которые даже понять не могут о чём разговор. Возможно вопросы слишком сложны для вас? | |
|
|
|
|
|
|
|
для: Sever
(12.12.2009 в 23:04)
| | Относительно первого вопроса - не поленитесь воспользоваться поиском - информации на сайте масса. От использования чисто utf-8 до изменения кодировок при передаче от сервера клиенту.
Относительно второго вопроса, то ответ на него Вы уже получили выше. | |
|
|
|
|
|
|
|
для: Sergeich
(13.12.2009 в 03:51)
| | >Относительно первого вопроса - не поленитесь воспользоваться поиском - информации на сайте масса.
Вот именно поэтому в ней и можно утонуть.
И не найти того, что надо.
Для чего форумы и существуют.
А вообще-то уже искал. Не нашёл. Это надо копаться по всем темам посвящённым форматам кодировок.
Но за совет про utf-8, хотя бы, спасибо. Сам об этом подумывал. Просто теперь надо заголовки некоторых страниц переписывать. Что не очень удобно.
>От использования чисто utf-8 до изменения кодировок при передаче от сервера клиенту.
Про передачу от сервера к клиенту поподробнее.
Это что имеется ввиду? К самому серверу я доступа не имею(Я же не администратор/хостер).
А так, я передаю данные в текстовом формате с сервера в приложение посредством установки правильного заголовка ф-цией PHP header(). Вы это имели ввиду?
Как уже было написано - всё бы хорошо, но значок "+" куда-то исчезает.
Русская кодировка должна быть восьмибитной. Поэтому надо установить хедеру:
...Content-Transfer-Encoding: 8bit...
|
Есть ещё один способ, но при нём "+" тоже исчезает. Нпример, так:
header('Content-Type: text/html; charset=Windows-1251 \n Content-Transfer-Encoding: quoted-printable\n');
|
>Относительно второго вопроса, то ответ на него Вы уже получили выше.
И ГДЕ?
Наводящий вопрос:
Вам что-либо известно о location или navigator объектах браузера? | |
|
|
|
|
|
|
|
для: Sever
(13.12.2009 в 16:50)
| | в url без перезагрузки можно только якорь приписывать - location.hash | |
|
|
|
|
|
|
|
для: Sever
(13.12.2009 в 16:50)
| | >Наводящий вопрос:
>Вам что-либо известно о location или navigator объектах браузера?
Ну, если Вы знаете о таких объектах как location и navigator то уже по крайней мере должны были бы знать, что первый Вам вряд ли может помочь, а другой к url строке в браузере вообще никакого отношения не имеет, соответственно, отпала бы необходимость задавать вопросы, на которые нет ответа (точнее, он негативный), и Вы сами об этом прекрасно знаете.
Относительно кодировки...
Вот несколько верхних (начиная с третьей) тем, где упоминается Ваша проблема при первом же поисковом запросе. Неужели так сложно всего один раз использовать поиск по сайту?
http://softtime.ru/forum/read.php?id_forum=4&id_theme=69123
http://softtime.ru/forum/read.php?id_forum=4&id_theme=69319
http://softtime.ru/forum/read.php?id_forum=4&id_theme=69424 | |
|
|
|
|
|
|
|
для: Sergeich
(13.12.2009 в 22:43)
| | >(точнее, он негативный), и Вы сами об этом прекрасно знаете.
Откуда?
1. Может быть какой-либо гений додумался как это сделать.
2. Может быть в какой-либо браузер из последних версий поддерживает такую возможность
3. Может быть существуют обходные пути(там, убрать строку URL скриптово, впендюрить на её место что-либо и т.д.).
4. И т.д.
5. Всё знать невозможно. Не стоит и пытаться объять необъятное.
>Относительно кодировки...
>Вот несколько верхних (начиная с третьей) тем, где упоминается Ваша проблема при первом же поисковом запросе. Неужели так сложно всего один раз использовать поиск по сайту?
>http://softtime.ru/forum/read.php?id_forum=4&id_theme=69123
>http://softtime.ru/forum/read.php?id_forum=4&id_theme=69319
>http://softtime.ru/forum/read.php?id_forum=4&id_theme=69424
1. У меня было 2 вопроса. 1 из которых небыло в поиске даже близко.
2. Все эти ссылки несколько не по теме. Т.е. не конкретно по моему вопросу. "Почему + исчезает именно при таких способах задания кодировки и как этого избежать".
3. Искать в исходном коде бесплатных AJAX библиотек НЕ ПРЕДЛАГАТЬ. Ибо это издевательство. Книгу читал, ещё 4 скачал. Все иностранных авторов. ОНИ НЕ РАССКАЗЫВАЮТ О РУССКОЙ КОДИРОВКЕ. Есть 2 книги по PHP русских авторов. О кодировках походя.
4. Самый главный прикол в том, что стандартная ф-я PHP5 convert_cyr_string() с форматом UTF-8 НЕ РАБОТАЕТ(как я её не терзал. Может плохо терзал?). Именно это я имел ввиду задавая вопрос "как избежать преобразования в трудночитаемые кодировки?". Может в php6 это исправили? Ну, мне без разницы. У моего бесплатного хостера всё равно php4 с какими-то апгрейдами...
Это очень хреновый прикол. - Ведь раздаются призывы переходить на UTF-8, а ф-ции php с ним не работают!
Про то, какой заголовок надо задавать при передаче AJAX запроса с сервера клиенту ДОГАДАЛСЯ САМ. Читая в книге по PHP о том как правильно задавать кодировку ПРИ ПЕРЕДАЧЕ ПОЧТОВЫХ СООБЩЕНИЙ. (php ф-я mail()).
Ладно с плюсом, хрен с ним(просто затруднительно будет выводить математические формулы и исходный код программ).
Но теперь как передавать русскую кодировку "ОТ КЛИЕНТА СЕРВЕРУ"? На данный момент я кодирую русский текст javaScript ф-ей escape(), а потом(приняв обратно) раскодирую unescape(). Но это не очень хорошо, ведь
1. Я не могу обрабатывать закодированный текст переданный на сервер средствами PHP(при применении url_encode() и url_decode() остаются какие-то артефакты. Например, пробелы распознаются как "+").
2. Я не могу быть уверенным, что принципы кодирования не изменятся от версии к версии браузера.
3. И не могу быть уверенным, что они не отличаются в Opra, Firefox, IE и т.д. Или что они не будут отличаться и впредь.
P.S. Стандартными AJAX модулями не пользуюсь. Написал свой по книжке. Работает норм. С кодировками запарка(книжка-то иностранного автора).
PP.S. http://softtime.ru/forum/read.php?id_forum=4&id_theme=69424 по этой ссылке говорится, что проблема с кодировками может быть в сервере. Но как уже говорилось, мой сервер нормально отображает русскую кодировку заданную хедером по вышеописанному принципу.
Всё же вопрос:
1. Почему "+" исчезает?
2. Как НЕ ТОЛЬКО "брать" русскую кодировку с сервера. НО. Сначала передавать "туда"(в заданном формате, без преобразование в трудночитаемое/непреобразуемое), а потом брать обратно?(например, для форума, добавления комментариев с последующими просмотрами)
3. На худой конец как - конвертировать UTF-8 в w-1251 посредством convert_cyr_string(). | |
|
|
|
|
|
|
|
для: Sever
(14.12.2009 в 17:31)
| | Уважаемый Server, перечитайте, пожалуйста, Ваш последний пост. Вы ничего странного в нем не находите?
Во-первых, можно ли из велосипеда сделать космический корабль? Может вы слишали знаете такого гения, который додумался как это сделать?
Во-вторых, Вы явно не слышите и не видете то, о чем Вам все пишут. Более того, Вы делаете вид, что все знаете и советы и ссылки подобные данным Вам не интересны. Они Вам не интересны лишь из-за того, что Вы НЕ хотите ВНИМАТЕЛЬНО читать и думать.
Вот простой пример, Вы пишете:
>1. Я не могу обрабатывать закодированный текст переданный на сервер средствами PHP(при применении url_encode() и url_decode() остаются какие-то артефакты. Например, пробелы распознаются как "+").
Очевидно, Вы даже не читали документацию по упомянутым Вами функциям, ибо если читали, то не могли бы не заметить описание функции urlencode(), в котором говорится, что пробелы передаются как +. Более того, на вот этой http://ua2.php.net/manual/en/function.urlencode.php странице документации кроме упомянутого выше есть ссылка на другую функцию - rawurlencode(), которая НЕ преобразует пробел в +. Достаточно только почитать, но Вы этого НЕ хотите. Или делаете вид, что не хотите. И вообще, что значит в Вашем понимании РУССКАЯ КОДИРОВКА? windows-1251? | |
|
|
|
|
|
|
|
для: Sergeich
(14.12.2009 в 18:53)
| | >Во-первых, можно ли из велосипеда сделать космический корабль? Может вы слишали знаете такого гения, который додумался как это сделать?
Не знаю, как зовут этого малого, но он создатель AJAX технологии. Согласно вашей аналогии, это запросы с помощью которых велосипед летает в космос(т.е. html страница взаимодействует с сервером без перезагрузки...). Для чего, собственно, и понадобилось менять URL без перезагрузки...
>Во-вторых, Вы явно не слышите и не видете то, о чем Вам все пишут. Более того, Вы делаете вид, что все знаете и советы и ссылки подобные данным Вам не интересны.
Как же не интересны? Я перечитал все ваши ссылки. Кое-что было интересно, но многое не по теме.
>Очевидно, Вы даже не читали документацию по упомянутым Вами функциям... http://ua2.php.net/manual/en/function.urlencode.php...
Конечно, я не читал той документации. А всё потому, что я не знаю английского языка(родился в России, так вот сложились звёзды...). Родился бы в Англии - прочитал бы, вероятно...
А русские авторы, чьи книги я читал, об этом не упоминали...
>Достаточно только почитать, но Вы этого НЕ хотите.
Ну, конечно. Слон тоже умеет летать. Не хочет, гад...
>ибо если читали, то не могли бы не заметить описание функции urlencode(), в котором говорится, что пробелы передаются как +. Более того, на вот этой http://ua2.php.net/manual/en/function.urlencode.php странице документации кроме упомянутого выше есть ссылка на другую функцию - rawurlencode(),
Вот бы сразу об этом! Это действительно полезно.
Хотя я уже приводил рассуждения на тему того, почему такой способ передачи информации лично мне не кажется надёжным.
Всё равно спасибо. | |
|
|
|
|
|
|
|
для: flaers
(12.12.2009 в 22:13)
| | я задал конкретный вопрос для уточнения ваших непониманий и чтобы мы могли правильно вам ответить.
насчёт всех непониманий по яваскрипту если вам надо срочно воспользуйтесь поиском по этому форуму или на русском офф сайте http://javascript.ru/
2) возможно вас заинересует http://iniweb.hiblogger.net/799.html
http://fullajax.ru/ про fullajax очень подробно написано на хабрахабре | |
|
|
|
|
|
|
|
для: flaers
(13.12.2009 в 11:32)
| | >я задал конкретный вопрос для уточнения ваших непониманий и чтобы мы могли правильно вам ответить.
Извольте:
Допустим, я решил застряпать сайт полностью на AJAX движке.
Смысл такой: 1 раз грузится только первая страница. Она имеет вид таблицы, где в центре отображается основная динамическая информация. Части сайта могут произвольно подгружаться без перезагрузки всей страницы. По сути, весь сайт состоит из одной, динамически меняющейся страницы(очень похоже на прикладную программу на языке высокого уровня).
На главной странице методами PHP по URL строке задаётся, какую внутреннюю структуру должна иметь страница сразу после загрузки(когда пользователь заходит на страницу в 1 раз). В дальнейшем, по мере работы пользователя перезагрузок не происходит. Но пользователь должен иметь возможность, в следующий раз, сразу по загрузке страницы(когда заходит на неё 1 раз), попасть именно к такой структуре сайта/страницы, которая ему нужна.
Удобнее всего отображать информацию о изменениях в странице(происходящих без перезагрузки страницы) в URL строке.
Да и вообще, интересно было бы уметь это делать.
>насчёт всех непониманий по яваскрипту если вам надо срочно воспользуйтесь поиском по этому форуму или на русском офф сайте http://javascript.ru/
На http://javascript.ru/ поищу, за полезные ссылки спасибо.
А вообще-то это не новость...
Раз задаю этот вопрос, значит, наверное, не нашёл?
И для чего форумы существуют, если всё и без них найти можно?
>2) возможно вас заинересует http://iniweb.hiblogger.net/799.html
>http://fullajax.ru/ про fullajax очень подробно написано на хабрахабре
Поищу и там. За полезные ссылки спасибо. | |
|
|
|
|