@mIndix

Как исправить кодировку в ajax?

У меня есть скрипт, он получает старое значение текста из textarea и новое измененное:
<script type = "text/javascript">
$(function(){
	$(".form-control").click(function() {
	var oldvalue = $(this).val();
		$(".form-control").change(function() {
		var value = $(this).val();
				$.ajax ({
				url: "ajax/upd_name.php",
				data: {'value':value, 'oldvalue':oldvalue},
			})
		});
	});
});
</script>

Дальше он передает эти значение в upd_name.php в котором он обновляет данные в таблице:
<?php
include ("../connect.php");
	$pol = $_GET['value'];
	$pol1 = $_GET['oldvalue'];
	$upd = "UPDATE SID_workCourier SET name = \"$pol\" WHERE name = \"$pol1\";";
	     mysql_query($upd);
?>

Вопрос в том, что если данные в textarea на английском, то данные обновляются, а если в textarea русские буквы, то данные в кодировке windows 1251 и запрос не исполняется, как сделать так, чтобы данные обновлялись и на русском языке:
Select запрос в консоле браузера если textarea имеет данные на русском:
UPDATE SID_workCourier SET name = "11.07.5 Отвез 2 обшивки в "Петровский-"." WHERE name = "11.07.5 Отвез 2 обшивки в "Петровский-С".";

(Поле name в бд - varchar(255) cp1251_general_ci)
  • Вопрос задан
  • 56 просмотров
Решения вопроса 1
@MikUrrey
Ответ конкретно на вопрос:
$pol = mb_convert_encoding($_GET['value'], 'UTF-8', 'windows-1251');
  $pol1 = mb_convert_encoding($_GET['oldvalue'], 'UTF-8', 'windows-1251');

или
$pol = iconv('UTF-8', 'windows-1251', $_GET['value']);
  $pol1 = iconv('UTF-8', 'windows-1251', $_GET['oldvalue']);


Вы, надеюсь, понимаете, где ваш код уязвим, почему его нельзя использовать в реальном проекте и то, что набор функций mysql_* уже давно никто не использует?
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы