PHP . SU
Программирование на PHP, MySQL и другие веб-технологии
Страниц (10): В начало « ... 2 3 4 5 6 7 8 9 [10]
Найдено сообщений: 141
Yuriy
Отправлено: 23 Июня, 2007 - 12:36:24 • Тема: Загрузить ответ на запрос AJAX в нужный id • Форум: JavaScript & VBScript
Ответов: 6 Просмотров: 4922
Есть несколько объектов. Пусть это будут кнопки. Каждая имеет свой id по шаблону div_x. Нажимаю на одну из кнопок, отсылается запрос на сервер и ответ на запрос должен заменить кнопку, которую мы нажали. Что не получается. id нажатой кнопки я передать могу в функцию AJAX. Но ведь отслеживание того, что запрос выполнен, виден в функции:
PHP:
скопировать код в буфер обмена
function processReqChange_9( )
{
if ( req9. readyState== 4 && req9. status== 200 )
{
document. getElementById( 'div_x' ) . innerHTML = req9. responseText;
}
}
а как мне в этой функции узнать id кнопки? То есть, мне надо передать как-то между функциями значение переменной. Несколько туманно объяснил… Вот пример:
PHP:
скопировать код в буфер обмена
< html>
< head>
<script language = "JavaScript" >
function processReqChange_9( )
{
if ( req9. readyState== 4 && req9. status== 200 )
{
document. getElementById( 'div_' + arg2) . innerHTML = req9. responseText;
}
}
function multi_call8( arg1, arg2)
{
alert( arg2) ;
if ( window. XMLHttpRequest)
{
req9 = new XMLHttpRequest( ) ;
req9. onreadystatechange = processReqChange_9;
req9. open( "GET" , arg1, true ) ;
req9. send( null ) ;
} else if ( window. ActiveXObject)
{
req9 = new ActiveXObject( "Microsoft.XMLHTTP" ) ;
if ( req9)
{
req9. onreadystatechange = processReqChange_9;
req9. open( "GET" , arg1, true ) ;
req9. send( ) ;
}
}
}
</script>
</ head>
< body>
< input type= "button" id= "div_1" value= "Button 1" onClick= "multi_call8('edit.php?a=1','1');" >
< br/>
< input type= "button" id= "div_2" value= "Button 2" onClick= "multi_call8('edit.php?a=2','2');" >
</ body>
</ html>
Мне нужно, чтобы по нажатии на одну из кнопок изменилось её содержимое, согласно ответу на запрос. Как видно, id (точнее его часть) я отсылаю вторым параметром и в функции multi_call8 его получаю. А вот как бы его передать теперь в processReqChange_9?
Yuriy
Отправлено: 18 Июня, 2007 - 21:13:43 • Тема: Нарушение кодировки при работе с AJAX • Форум: Программирование на PHP
Ответов: 22 Просмотров: 2251
valenok пишет: осмотрел на ваши функции и коды перекодировок и понял что это нечто грандиозное, аж достойное удивления
Я ведь учусь... Не надо смеяться... \n\n(Добавление)
valenok , а всё-таки. Можете объяснить, чего вы там исправили и зачем?
Yuriy
Отправлено: 18 Июня, 2007 - 17:38:05 • Тема: Нарушение кодировки при работе с AJAX • Форум: Программирование на PHP
Ответов: 22 Просмотров: 2251
Спасибо, ребята, за ответы. UserID , вы не поверите, но всё равно не работает Я вижу выведенный текст, например, таким:
"ЭјЭѕЭ№ С‚ЭµЭєСЃС‚"
, а у вас в функции utf8_win идут такие замены: xD0xB0 и т. п. А что функция будет менять здесь, если совсем другие символы в моей кодировке выше? Очень странно... Или пора ОС переставлять, или я чего-то недопонял.
Ещё раз на всякий случай.
Я заменил в своём коде только содержимое файлы test.php на это:
CODE (
text ):
скопировать код в буфер обмена
<?
function utf8_win($s)
{
$s = str_replace("xD0xB0", "а", $s); $s = str_replace("xD0x90", "А", $s);
$s = str_replace("xD0xB1", "б", $s); $s = str_replace("xD0x91", "Б", $s);
$s = str_replace("xD0xB2", "в", $s); $s = str_replace("xD0x92", "В", $s);
$s = str_replace("xD0xB3", "г", $s); $s = str_replace("xD0x93", "Г", $s);
$s = str_replace("xD0xB4", "д", $s); $s = str_replace("xD0x94", "Д", $s);
$s = str_replace("xD0xB5", "е", $s); $s = str_replace("xD0x95", "Е", $s);
$s = str_replace("xD1x91", "ё", $s); $s = str_replace("xD0x81", "Ё", $s);
$s = str_replace("xD0xB6", "ж", $s); $s = str_replace("xD0x96", "Ж", $s);
$s = str_replace("xD0xB7", "з", $s); $s = str_replace("xD0x97", "З", $s);
$s = str_replace("xD0xB8", "и", $s); $s = str_replace("xD0x98", "И", $s);
$s = str_replace("xD0xB9", "й", $s); $s = str_replace("xD0x99", "Й", $s);
$s = str_replace("xD0xBA", "к", $s); $s = str_replace("xD0x9A", "К", $s);
$s = str_replace("xD0xBB", "л", $s); $s = str_replace("xD0x9B", "Л", $s);
$s = str_replace("xD0xBC", "м", $s); $s = str_replace("xD0x9C", "М", $s);
$s = str_replace("xD0xBD", "н", $s); $s = str_replace("xD0x9D", "Н", $s);
$s = str_replace("xD0xBE", "о", $s); $s = str_replace("xD0x9E", "О", $s);
$s = str_replace("xD0xBF", "п", $s); $s = str_replace("xD0x9F", "П", $s);
$s = str_replace("xD1x80", "р", $s); $s = str_replace("xD0xA0", "Р", $s);
$s = str_replace("xD1x81", "с", $s); $s = str_replace("xD0xA1", "С", $s);
$s = str_replace("xD1x82", "т", $s); $s = str_replace("xD0xA2", "Т", $s);
$s = str_replace("xD1x83", "у", $s); $s = str_replace("xD0xA3", "У", $s);
$s = str_replace("xD1x84", "ф", $s); $s = str_replace("xD0xA4", "Ф", $s);
$s = str_replace("xD1x85", "х", $s); $s = str_replace("xD0xA5", "Х", $s);
$s = str_replace("xD1x86", "ц", $s); $s = str_replace("xD0xA6", "Ц", $s);
$s = str_replace("xD1x87", "ч", $s); $s = str_replace("xD0xA7", "Ч", $s);
$s = str_replace("xD1x88", "ш", $s); $s = str_replace("xD0xA8", "Ш", $s);
$s = str_replace("xD1x89", "щ", $s); $s = str_replace("xD0xA9", "Щ", $s);
$s = str_replace("xD1x8A", "ъ", $s); $s = str_replace("xD0xAA", "Ъ", $s);
$s = str_replace("xD1x8B", "ы", $s); $s = str_replace("xD0xAB", "Ы", $s);
$s = str_replace("xD1x8C", "ь", $s); $s = str_replace("xD0xAC", "Ь", $s);
$s = str_replace("xD1x8D", "э", $s); $s = str_replace("xD0xAD", "Э", $s);
$s = str_replace("xD1x8E", "ю", $s); $s = str_replace("xD0xAE", "Ю", $s);
$s = str_replace("xD1x8F", "я", $s); $s = str_replace("xD0xAF", "Я", $s);
return $s;
}
echo utf8_win($_POST["text"]);
?>
Кстати, я решил приколоться и чуточку изменил вашу функцию, согласно моей кодировке, что я вижу. Например:
CODE (
text ):
скопировать код в буфер обмена
$s = str_replace("Рђ", "А", $s);
$s = str_replace("Р‘", "Б", $s);
$s = str_replace("Р’", "В", $s);
$s = str_replace("Р“", "Г", $s);
и русский текст стал выводиться.
Внимание, вопрос: где я не прав?
И ещё: почему теги code не понимает форум? Или для новичков они отключены?
Спасибо за помощь, ребята! У вас очень уютно на форуме ;)
P. S. Выше реклама от гугла у меня отображается также, как и результат работы моего аякса:
Реклама от Google
Install PHP
News PHP
PHP Example
PHP Manual
Oracle PHP
Yuriy
Отправлено: 18 Июня, 2007 - 14:41:32 • Тема: Нарушение кодировки при работе с AJAX • Форум: Программирование на PHP
Ответов: 22 Просмотров: 2251
valenok , спасибо за ответ! Да, я так пробовал делать. И первым, и вторым вариантом. Не работает всё равно. Скриншот окна браузера и меню, где у меня стоит кодировка, прилагаю.
Yuriy
Отправлено: 18 Июня, 2007 - 13:47:17 • Тема: Нарушение кодировки при работе с AJAX • Форум: Программирование на PHP
Ответов: 22 Просмотров: 2251
Сделал AJAX запрос на передачу данных серверу методом POST. Получаю эти данные и просто их вывожу посредством PHP на экрна в div. Результат выводится в кодировке UTF-8. А в браузере стоит windows-1251. Если выбрать, чтобы браузер автоматом определял кодировку, то всё нормально. Но меня такое положение дел не устраивает и хочу сразу перед выводом на экран как-то перекодировать ответ на запрос в windows-1251. Среди PHP функций не нашёл мне нужную. Надеюсь, что данную проблему можно решить как-то по-другому. Может, я запрос неправильно отправляю... Все мои заготовки выкладываю ниже.
Файл index.html:
CODE (
text ):
скопировать код в буфер обмена
<script language="javascript">
function processReqChange_8() {
if(req8.readyState==4) {
if(req8.status==200) {
document.getElementById("body").innerHTML = req8.responseText;
}
}
}
function multi_call7(arg1,arg2) {
if(window.XMLHttpRequest) {
req8 = new XMLHttpRequest();
req8.onreadystatechange = processReqChange_8;
req8.open("POST",arg1, true);
req8.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
req8.send(arg2);
} else if (window.ActiveXObject) {
req8 = new ActiveXObject("Microsoft.XMLHTTP");
if (req8) {
req8.onreadystatechange = processReqChange_8;
req8.open("POST",arg1, true);
req8.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
req8.send(arg2);
}
}
}
</script>
<html>
<body>
<input name="text" type="text" value="Русский текст" size="20">
<br/>
<input type="button" value="Передать данные!" onclick="multi_call7('test.php','text='+encodeURIComponent(text.value));">
<br/>
<div id="body">
</div>
</body>
</html>
Файл test.php:
Заранее спасибо за ответ!
Страниц (10): В начало « ... 2 3 4 5 6 7 8 9 [10]
Powered by ExBB FM 1.0 RC1. InvisionExBB