Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Кириллица в ajax
Форумы портала PHP.SU » Клиентская разработка » JavaScript & VBScript » Кириллица в ajax

Страниц (1): [1]
 

1. Ismail - 19 Сентября, 2013 - 14:48:51 - перейти к сообщению
Доброе время суток,

разбираюсь с работой ajax+php.

Сценарий такой: на html странице пользователь вводит данные:

CODE (html):
скопировать код в буфер обмена
  1. <html>
  2.  
  3. <head>
  4.  
  5. <title>Ajax</title>
  6. <script src='jquery-1.7.2.min.js' type='text/javascript'></script>
  7. <script type="text/javascript" src="ajax.js"></script>
  8.  
  9. </head>
  10.  
  11. <body>
  12. <form action="" id="myform">
  13. <input type="text" name="mydata" id="mydata" />
  14. <input type="text" name="myinfo" id="myinfo" />
  15. <input type="button" onclick="send();" value="Найти" />
  16. </form>
  17. <div id="result"></div>
  18. </body>
  19.  
  20. </html>


ajax:

CODE (javascript):
скопировать код в буфер обмена
  1. function send()
  2. {
  3.  
  4.        $.ajax({
  5.                 type: "POST",
  6.                 url: "SendData.php",
  7.                 data: $("#myform").serialize(),
  8.                 success: function(html) {
  9.  
  10.                         $("#result").empty();
  11.                         $("#result").append(html);
  12.                 }
  13.         });
  14.  
  15. }


обработчик php:

PHP:
скопировать код в буфер обмена
  1. <?PHP
  2.  
  3.                 $data = $_REQUEST['mydata'];
  4.                 $data1 = $_REQUEST['myinfo'];
  5.  
  6.                 $db = mysql_connect("localhost","drupal","123");
  7.                 mysql_select_db("123",$db);
  8.                 $result1 = mysql_query("SELECT `ID`, `otkuda` FROM wp_posts
  9.                 WHERE `otkuda`='$data' AND `kuda`='$data1'",$db);
  10.                 $date1 = mysql_fetch_array($result1);
  11.  
  12.                 echo $date1['ID'];
  13.  
  14. ?>



Если в базе прописано на английском, поиск работает, если на русском - ничего не происходит. Поставил кодировку utf-8, не помогло.
2. imya - 19 Сентября, 2013 - 15:03:56 - перейти к сообщению
Может поможет http://forum.php.su/topic.php?fo...10093#1379310093
3. LIME - 19 Сентября, 2013 - 15:37:06 - перейти к сообщению
ajax работает только в utf
в обработчике можно воспользоваться iconv
4. Ismail - 19 Сентября, 2013 - 15:39:37 - перейти к сообщению
Не помогло, кажется нужно каким-то образом конвертировать в нужную кодировку перед отправкой,

в гугле нашел что нужно прописать в обработчике php:


header("Content-type: text/html; charset=1251 либо utf-8");

либо "ручная" перекодировка iconv("UTF-8", "WINDOWS-1251", $param);


но не то не то не помогло.
(Добавление)
iconv помог, спасибо всем!

 

Powered by ExBB FM 1.0 RC1