За последние 24 часа нас посетили 33406 программистов и 1754 робота. Сейчас ищут 1152 программиста ...

jquery autocomplete mysql

Тема в разделе "JavaScript и AJAX", создана пользователем TigerZaka, 29 май 2013.

  1. TigerZaka

    TigerZaka Активный пользователь

    С нами с:
    16 сен 2011
    Сообщения:
    189
    Симпатии:
    1
    Ребят, подскажите, как одолеть
    не хочет значения из базы в автокомплит засовывать, что с ними сделать надо?
    index.php
    Код (Text):
    1. <script>
    2.     $(document).ready(function(){
    3.         $("#tag").autocomplete({
    4.             source: "search.php",
    5.             minLength: 2
    6.         });
    7.     });
    8.     </script>
    9. </head>
    10. <body>
    11.     <input id="tag">
    search.php
    Код (Text):
    1.  
    2. $q=$_GET['q'];
    3. $my_data = mysql_real_escape_string($q);
    4. $mysql = mysql_connect('localhost','root','') or die(mysql_error());
    5. mysql_select_db('estate',$mysql);
    6. mysql_query("SET NAMES utf8");
    7.  
    8. $sql = mysql_query('SELECT * FROM blocks WHERE block_name like '%$my_data%' ORDER BY block_name') or die(mysql_error());
    9. if($sql) {
    10.     while($row = mysql_fetch_array($sql)) {
    11.         echo $row["block_name"]."<br/>";
    12.     }
    13. }
     
  2. Deonis

    Deonis Старожил

    С нами с:
    15 фев 2013
    Сообщения:
    1.521
    Симпатии:
    504
    Поправки PHP:
    Код (PHP):
    1. $my_data = mysql_real_escape_string($_GET['term']);
    2. /* ... подключение к БД, запрос... */
    3. $response_arr = array();
    4. while ($row = mysql_fetch_array($sql)){
    5.     $response_arr[] = $row["block_name"];
    6. }
    7. echo json_encode($response_arr);
    8. exit; 
     
  3. TigerZaka

    TigerZaka Активный пользователь

    С нами с:
    16 сен 2011
    Сообщения:
    189
    Симпатии:
    1
    $response_arr - пустой

    Аааа...есть у кого решение классное, чтоб кириллицу воспринимал нормально json_encode ?

    Добавлено спустя 39 минут 49 секунд:
    вот, может пригодиться кому:
    Код (Text):
    1.  
    2. function json_fix_cyr($json_str) {
    3. $cyr_chars = array (
    4. '\u0430' => 'а', '\u0410' => 'А',
    5. '\u0431' => 'б', '\u0411' => 'Б',
    6. '\u0432' => 'в', '\u0412' => 'В',
    7. '\u0433' => 'г', '\u0413' => 'Г',
    8. '\u0434' => 'д', '\u0414' => 'Д',
    9. '\u0435' => 'е', '\u0415' => 'Е',
    10. '\u0451' => 'ё', '\u0401' => 'Ё',
    11. '\u0436' => 'ж', '\u0416' => 'Ж',
    12. '\u0437' => 'з', '\u0417' => 'З',
    13. '\u0438' => 'и', '\u0418' => 'И',
    14. '\u0439' => 'й', '\u0419' => 'Й',
    15. '\u043a' => 'к', '\u041a' => 'К',
    16. '\u043b' => 'л', '\u041b' => 'Л',
    17. '\u043c' => 'м', '\u041c' => 'М',
    18. '\u043d' => 'н', '\u041d' => 'Н',
    19. '\u043e' => 'о', '\u041e' => 'О',
    20. '\u043f' => 'п', '\u041f' => 'П',
    21. '\u0440' => 'р', '\u0420' => 'Р',
    22. '\u0441' => 'с', '\u0421' => 'С',
    23. '\u0442' => 'т', '\u0422' => 'Т',
    24. '\u0443' => 'у', '\u0423' => 'У',
    25. '\u0444' => 'ф', '\u0424' => 'Ф',
    26. '\u0445' => 'х', '\u0425' => 'Х',
    27. '\u0446' => 'ц', '\u0426' => 'Ц',
    28. '\u0447' => 'ч', '\u0427' => 'Ч',
    29. '\u0448' => 'ш', '\u0428' => 'Ш',
    30. '\u0449' => 'щ', '\u0429' => 'Щ',
    31. '\u044a' => 'ъ', '\u042a' => 'Ъ',
    32. '\u044b' => 'ы', '\u042b' => 'Ы',
    33. '\u044c' => 'ь', '\u042c' => 'Ь',
    34. '\u044d' => 'э', '\u042d' => 'Э',
    35. '\u044e' => 'ю', '\u042e' => 'Ю',
    36. '\u044f' => 'я', '\u042f' => 'Я',
    37.  
    38. '\r' => '',
    39. '\n' => '<br />',
    40. '\t' => ''
    41. );
    42.  
    43. foreach ($cyr_chars as $cyr_char_key => $cyr_char) {
    44. $json_str = str_replace($cyr_char_key, $cyr_char, $json_str);
    45. }
    46. return $json_str;
    47. }