Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Web программирование > JavaScript, Ajax
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 04.02.2015, 09:45   #1
Maxx
Форумчанин
 
Аватар для Maxx
 
Регистрация: 29.10.2008
Сообщений: 294
По умолчанию Кодировка Javascript - PHP

Добрый день!

Для записи в базу MySQL и использую AJAX:

Код PHP:
PHP код:
<?php
    $tbl 
'
        <td>
            <input id="'
$order_id .'" value="'$order_comment .'" size="10" maxlength="300" onchange="javascript:myfunc(this.id, this.value);">
        </td>
    '
;    
?>
Код Javascript:
Код:
function myfunc(product, mystr) {
	var iStr = String(mystr);

	//window.alert(iStr);
	$(document).ready(function(){  
		$.ajax({  
			url: 'pathtophpscript/script.php',
			type: 'post',
			data: 'product=' + product + '&str=' + iStr,
			cache: false,   
		}); 	  
	}); 
}
База MySQL и сайт в кодировке windows-1251.
Сообщение window.alert(iStr); выдает русский текст, введенный в поле <input>.
В базу записываются крокозабря.

Подскажите, как исправить? Не знаю где копать.

СПАСИБО!
Maxx вне форума Ответить с цитированием
Старый 04.02.2015, 10:46   #2
Naive
Раздолбайских Дел
Старожил
 
Аватар для Naive
 
Регистрация: 22.05.2009
Сообщений: 3,828
По умолчанию

AJAX (именно xmlhttprequest) не умеет работать с 1251, придется кодировать в утф8, посылать, декодировать.
Но проще все перевести в utf8)
Еще вариант: сделать по-старинке, посылать через скрытый айфрейм
Alar, верни репу!
Naive вне форума Ответить с цитированием
Старый 04.02.2015, 11:19   #3
Maxx
Форумчанин
 
Аватар для Maxx
 
Регистрация: 29.10.2008
Сообщений: 294
По умолчанию

Цитата:
Но проще все перевести в utf8
Это не реально!

Цитата:
придется кодировать в утф8, посылать, декодировать
Не подскажите ссылочку на материал, где почитать? Или может есть пример готовый. Я не силен в Javascript.
Maxx вне форума Ответить с цитированием
Старый 04.02.2015, 14:34   #4
Maxx
Форумчанин
 
Аватар для Maxx
 
Регистрация: 29.10.2008
Сообщений: 294
По умолчанию

Работает вот так:
Код:
function myfunc(product, mystr) {
	var iStr= decode_utf8(mystr.valueOf());

	//window.alert(iStr);
	$(document).ready(function(){  
		$.ajax({  
			url: 'pathtophpscript/script.php',
			type: 'post',
			data: 'product=' + product + '&str=' + iStr,
			cache: false,   
		}); 	  
	}); 
}
function decode_utf8(s) {
	return decodeURIComponent(s);
}
А в script.php перед записью в БД:
PHP код:
$striconv('utf-8''windows-1251//TRANSLIT'$str); 
Naive, спасибо за совет!

Последний раз редактировалось Maxx; 04.02.2015 в 16:26.
Maxx вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Кодировка в php AlexDn PHP 4 26.05.2012 09:53
статья - Бесплатный PHP, HTML, CSS, JavaScript редактор ? Codelobster PHP Edition Pblog Обсуждение статей 0 20.04.2012 14:50
Не работает кодировка windows-1251 в PHP moshkin_ura PHP 11 15.03.2012 20:50
Кодировка в PHP Syltan PHP 5 10.03.2010 20:50
WebIcqPro.class.php кодировка koshkarjov PHP 3 14.07.2009 22:09