|
|
|
|
|
для: bibika
(30.09.2011 в 13:10)
| | Продолжаю разбираться с этим примером. Подскажите почему при нажатие кнопки обновить в браузере начинают дублироваться записи на странице вывода, и при каждом добавление новых записей они все дублируются и дублируются, при этом в базе все нормально пишется. Если убрать скрипт с страницы все нормально выводится.
Спасибо | |
|
|
|
|
|
|
|
для: bibika
(29.09.2011 в 22:47)
| | Всем спасибо
Разобрался с помощью гугления. Все решилось просто, может это неверное решение, но какое есть:
в файл submit.php добавил перекодировку перед занесением информации в базу
$name = $_POST['name'];
$text = $_POST['text'];
$name=iconv('UTF-8', 'windows-1251', $_POST['name']);
$text=iconv('UTF-8', 'windows-1251', $_POST['text']);
$query="insert into tbl values(0,'$name','$text')";
|
В результате в базе данные в нормальной кодировке и выводятся они тоже нормально в браузер.
Еще раз спасибо | |
|
|
|
|
|
|
|
для: TavRoX
(29.09.2011 в 22:43)
| | Аякс работает с кодировкой windows-1251, просто он автоматом переводит все в UTF-8, проблема в том, как перевести все в исходную кодировку, при отображение на странице.
Подскажите что сделать с исходным скриптом, что б все заработало. | |
|
|
|
|
|
|
|
для: bibika
(29.09.2011 в 22:15)
| | и страница и данные должны быть в утф8
аякс не работает с виндоус | |
|
|
|
|
|
|
|
для: cheops
(29.09.2011 в 20:20)
| | Что-то я не понял уважаемый cheops.
По идее нужно преобразовать данные которые выдает скрипт при выдаче результата на странице. Вот эта часть кода:
while($row= iconv ('UTF-8','WINDOWS-1251', mysql_fetch_array($result))
|
А так данные приходят в формате WINDOWS-1251, передаются в 'UTF-8, а на результате вывода нужно их поменять в WINDOWS-1251. Так я понимаю этот процесс. | |
|
|
|
|
|
|
|
для: bibika
(29.09.2011 в 18:54)
| | Что можно преобразовать в UTF-8, а что нельзя? Например обработчик можно преобразовать? | |
|
|
|
|
|
|
| Пробую разобраться с Ajax на простом примере, столкнулся с одной проблемой, кодировкой. Помогите что поправить в тексте скрипта. Писать все в UTF-8 не представляется возможным.
Код;
файл с формой
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />
</head>
<body>
<form id="form_1" action="submit.php" method="POST">
<b>Заголовок:</b> <br><input type="text" name="name"> <br>
<b>Описание:</b> <br><textarea name="text"></textarea><br>
<input type="submit" value="Отправить">
</form>
<script type="text/javascript">
<!--
function setRequestMode(form)
{
form.onsubmit = function()
{
vars = new Array();
for(i=0; i<this.elements.length; i++)
{
vars[vars.length] = this.elements[i].name + "=" + this.elements[i].value;
}
var ajax = document.all ? new ActiveXObject("Msxml2.XMLHTTP") : new XMLHttpRequest();
ajax.open("POST", this.action);
ajax.onreadystatechange = function()
{
//Вивод повідомлення про Ок
if(ajax.readyState == 4)
{
}
}
ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded;
charset=windows-1251");
ajax.send(vars.join("&"));
return false;
}
}
setRequestMode(document.getElementById('form_1'));
//-->
</script>
</body>
</html>
|
код обработчика
<?php
header("Content-type: text/html; charset=windows-1251");
$host="localhost";
$user="root";
$passw="";
$dbase="proba";
$table="tbl";
/*зєднання з БД*/
$db=mysql_connect($host,$user,$passw) or die ("<font color='red'>
Неможливо встановити з'єднання з базою даних. Зверніться до адміністратора.</font>");
/*вибір БД*/
mysql_select_db($dbase) or die ("<font color='red'>База даних зараз недоступна. Зверніться до адміністратора.</font>");
$name = $_POST['name'];
$text = $_POST['text'];
$query="insert into tbl values(0,'$name','$text')";
$ok=mysql_query($query) or die(mysql_error());
?>
|
код вывода
<?
header("Content-type: text/html; charset=windows-1251");
$host="localhost";
$user="root";
$passw="";
$dbase="proba";
$table="tbl";
/*зєднання з БД*/
$db=mysql_connect($host,$user,$passw) or die ("<font color='red'>
Неможливо встановити з'єднання з базою даних. Зверніться до адміністратора.</font>");
/*вибір БД*/
mysql_select_db($dbase) or die ("<font color='red'>База даних зараз недоступна. Зверніться до адміністратора.</font>");
$result=mysql_query("select * from tbl");
while($row= iconv ('UTF-8','WINDOWS-1251', mysql_fetch_array($result)))
{
echo " <span style='background-color:violet;'>ID: $row[id]</span> <hr> Имя: $row[name] <br> Текст: $row[text] <hr>";
}
?>
<div id="data"></div>
<script type="text/javascript">
<!--
function getData()
{
var ajax = document.all ? new ActiveXObject("Msxml2.XMLHTTP") : new XMLHttpRequest();
var now = new Date();
ajax.open("GET", "http://proba/ajax/vyvod.php?noCashe="+now.getMilliseconds());
ajax.onreadystatechange = function()
{
if(ajax.readyState == 4)
{
document.getElementById("data").innerHTML = ajax.responseText;
setTimeout("getData()", 500);
}
}
ajax.send(null);
}
getData();
//-->
</script>
|
| |
|
|
|
|