$(document).ready(function(){
$('#AddressForm').submit(function(e) {
Address();
e.preventDefault();
});
});
function hideshow(el,act)
{
if(act) $('#'+el).css('visibility','visible');
else $('#'+el).css('visibility','hidden');
}
function error(act,txt)
{
hideshow('error',act);
if(txt) $('#error').html(txt);
}
function success(act,txt)
{
hideshow('success',act);
if(txt) $('#success').html(txt);
}
function Address()
{
hideshow('loading',1);
error(0);
$.ajax({
type: "POST",
url: "address.php",
data: $('#AddressForm').serialize(),
dataType: "json",
success: function(msg){
if(parseInt(msg.status)==1)
{
success(1,msg.txt);
}
else if(parseInt(msg.status)==0)
{
error(1,msg.txt);
}
hideshow('loading',0);
}
});
}
AJAX передает неправильную кодировку в MySQL
Перепробовал разные способы ничего не работает:(
вот код:
index.html:
[HTML]
<body>
<form id="AddressForm" action="submit.php" method="post">
<b>Город:</b>
<input type="text" name="city" id="city"><br />
<b>Район:</b>
<input type="text" name="district" id="district"><br />
<b>Улица:</b>
<input type="text" name="street" id="street"><br />
<b>Дом: </b>
<input type="text" name="home" id="home"><br />
<input type="submit" value="Sign Up" /><img id="loading" src="img/ajax-loader.gif" alt="working.." />
<div id="error"></div><div id="success"></div>
</body>
[/HTML]
address.php:
Код:
<?php
header("Content-type: text/html; charset=windows-1251");
include ("setting/bd.php");
if(empty($_POST['city']) || empty($_POST['district']) || empty($_POST['street']))
{
die('{status:0,txt:"Вы ввели не всю информацию, поэтому адрес в базу не может быть добален."}');
}
if (isset($_POST['city'])) {$cityRU = $_POST['city']; if ($cityRU == '') {unset($cityRU);}}
if (isset($_POST['district'])) {$districtRU = $_POST['district']; if ($districtRU == '') {unset($districtRU);}}
if (isset($_POST['street'])) {$streetRU = $_POST['street']; if ($streetRU == '') {unset($streetRU);}}
if (isset($_POST['home'])) {$homeRU = $_POST['home']; if ($homeRU == '') {unset($homeRU);}}
$result = mysql_query ("INSERT INTO address (cityRU,districtRU,streetRU,homeRU)
VALUES ('$cityRU','$districtRU','$streetRU','$homeRU')");
if ($result == 'true')
{echo "{status:1,txt:'Адрес успешно добален!'}";}
else {echo "{status:1,txt:'Адрес не добален!'}";}
?>
header("Content-type: text/html; charset=windows-1251");
include ("setting/bd.php");
if(empty($_POST['city']) || empty($_POST['district']) || empty($_POST['street']))
{
die('{status:0,txt:"Вы ввели не всю информацию, поэтому адрес в базу не может быть добален."}');
}
if (isset($_POST['city'])) {$cityRU = $_POST['city']; if ($cityRU == '') {unset($cityRU);}}
if (isset($_POST['district'])) {$districtRU = $_POST['district']; if ($districtRU == '') {unset($districtRU);}}
if (isset($_POST['street'])) {$streetRU = $_POST['street']; if ($streetRU == '') {unset($streetRU);}}
if (isset($_POST['home'])) {$homeRU = $_POST['home']; if ($homeRU == '') {unset($homeRU);}}
$result = mysql_query ("INSERT INTO address (cityRU,districtRU,streetRU,homeRU)
VALUES ('$cityRU','$districtRU','$streetRU','$homeRU')");
if ($result == 'true')
{echo "{status:1,txt:'Адрес успешно добален!'}";}
else {echo "{status:1,txt:'Адрес не добален!'}";}
?>
script.js:
Код:
http://habrahabr.ru/blogs/webdev/17640/
вкратце: iconv() на сервере после получения данных..
а лучше всё на utf-8 переведите
вкратце: iconv() на сервере после получения данных..
а лучше всё на utf-8 переведите
На первой странице вторая ссылка по запросу "AJAX windows-1251"
_http://easywebscripts.net/ajax/ajax_rus.php
Цитата: Kesano
А вы в гугл заходили?
На первой странице вторая ссылка по запросу "AJAX windows-1251"
_http://easywebscripts.net/ajax/ajax_rus.php
На первой странице вторая ссылка по запросу "AJAX windows-1251"
_http://easywebscripts.net/ajax/ajax_rus.php
Все что было описано я делал...
Ничего не работает...
Цитата: Mr.Hacker
а лучше всё на utf-8 переведите
Каким образом? База на utf8 и в везде прописано UTF-8
А с каким заголовком Content-type: charset приходит ваш index.html? И зачем вам тогда header("Content-type: text/html; charset=windows-1251");? если всё в UTF-8, то всё должно быть в нём..
Как как вы из мускуля отдаёте? в UTF-8 же... Если на странице всё корректно - значит и страница в UTF-8... может форма на отдельной странице, которая на win1251 написана?