Новичок | Приветствую всех! Столкнулся с проблемой кодировки и не знаю в каком месте проблема. Какие будут соображения? Есть БД MySQL в UTF-8, index.php
Код HTML: <!DOCTYPE html> <html> <head> <title>price</title> <meta charset="UTF-8"> <link rel="stylesheet" type="text/css" href="style.css"> <script type="text/javascript"
src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"> </script> <script type="text/javascript">
$(function() {
$("#txtTitle").keyup(function() {
// получаем то, что написал пользователь
var searchString = $("#txtTitle").val();
// формируем строку запроса
var data = 'query='+ searchString;
// если searchString не пустая
if(searchString) {
// делаем ajax запрос
$.ajax({
type: "POST",
url: "find_jQuery.php",
data: data,
// выполнится до AJAX запроса
beforeSend: function(html) {
$("#divResult").html('');
$("#search").show();
$("#span").html(searchString);
},
// выполнится после AJAX запроса
success: function(html){
$("#divResult").show();
$("#divResult").append(html);
}
});
}
return false;
});
});
</script> </head> <body> <br /> <div id="form"> <form method="post" action="find_jQuery.php" onsubmit="return false"> <div> <input id="txtTitle" type="text" placeholder="Введите запрос" /> <!--input type="submit" value="Поиск" class="search_button" /><br /--> </div><br /> </form> <div id="search">Результаты для <span id="span"></span>:</div> <div id="divResult"></div> </div> </body> </html> и find_jQuery.php:
PHP код: <?php
include "bd_connect.php"; //Соединяемся с базой
/*Обработка поискового запроса*/
function search ($query) {
$text = '';
$usd_exchange = 40;
// Проводим фильтрацию данных
$query = trim($query); // Обрезаем пробелы и спецсимволы
$query = mysql_real_escape_string($query); // Фильтруем текст
$query = htmlspecialchars($query); // Переводим
//Поисковый запрос не пустой?
if (!empty($query)){
if (strlen($query) < 3) {
$text = '<p>короткий поисковый запрос.</p>';
} elseif (strlen($query) > 128) {
$text = '<p>длинный поисковый запрос.</p>';
} else {
//Формируем строку поискового запроса
$sql = "SELECT * FROM `Price` WHERE `Supplier` LIKE '%".preg_replace("# #msi", "%' OR `Supplier` LIKE '%", $query)."%' OR `Collection` LIKE '%".preg_replace("# #msi", "%' OR `Collection` LIKE '%", $query)."%' OR `Article` LIKE '%".preg_replace("# #msi", "%' OR `Article` LIKE '%", $query)."%' OR `Pattern` LIKE '%".preg_replace("# #msi", "%' OR `Pattern` LIKE '%", $query)."%'";
// и выполняем его
$result = mysql_query($sql);
//Если число совпадений (строк результата запроса) больше 0
if ( $num = mysql_num_rows($result) > 0) {
//Получаем ассоциативный массив
$row = mysql_fetch_assoc($result);
//и начинаем формировать строку поисковой выдачи
do {
//Продолжаем формировать строку поисковой выдачи
$Price = $row['Supplier Price']*2;
$Unit = $row['Unit'];
if ($Unit == "RUB"){
$Price = ceil($Price/$usd_exchange);
$Unit = "USD";
}
$text .= '<tr><td class="red">'.$Price.' '.$Unit.'</td><td>'.$row['Supplier'].'</td><td>'.$row['Collection'].'</td><td>'.$row['Article'].'</td><td>'.$row['Pattern'].'</td><td>'.$row['Page'].'</td><td>'.$row['Color'].'</td><td>'.$row['Length'].'</td><td>'.$row['Width/Height'].'</td><td>'.$row['Report'].'</td><td>'.$row['Vreport'].'</td><td>'.$row['Hreport'].'</td><td>'.$row['Composition'].'</td><td>'.$row['Country'].'</td><td>'.$row['Note'].'</td></tr>';
// Делаем это пока у нас есть результаты
} while ($row = mysql_fetch_assoc($result));
// Выделяем поисковый запрос
$bold = '<span class="found">' . $query . '</span>';
$text = str_ireplace($query, $bold, $text);
} else {
// Найти совпадение не удалось
$text = '<p>По вашему запросу ничего не найдено.</p>';
}
}
} else {
$text = '<p>Задан пустой поисковый запрос.</p>';
}
//Возвращаем сформированную строку поисковой выдачи
?>
<div class="datagrid"><table>
<thead><tr><th>Цена</th><th>Поставщик</th><th>Коллекция</th><th>Арт.</th><th>Паттерн</th><th>Стр.</th><th>Цвет</th><th>Длина</th><th>Выс./Шир.</th><th>Рапорт</th><th>Верт. Рапорт</th><th>Гор. Рапорт</th><th>Состав</th><th>Страна</th><th>Прим.</th></tr></thead>
<tbody>
<? return $text; ?>
</tbody>
</table>
</div>
<?
}
if (isset ($_POST['query']) && !empty($_POST['query'])){
// Открываем соединение с базой данных
// и обращаемся к функции search()
$search_result = search ($_POST['query']);
echo $search_result;
}
?>
При вводе в инпут выдает строки с совпадениями из базы. Латиница отображается норм,а вместо киррилицы - вопросительные знаки (???????) |