2016-01-25 6 views
0

У меня проблема с получением данных из php и отображения данных с использованием метода ajax.PHP Ajax JQuery UTF8 проблема с символом

Мой главный файл index1.php имеют Див, где все данные дисплей:

<div id="divPageData"> </div> 

есть другой tablepage.php где Ajax вызова сценария

function loadData() 
{ 
var dataString; 
var search = $("input#fieldSearch").val(); 
var record = $("select#pageRecord").val(); 
var gender = $("select#fieldSearch1").val(); 
var colf = $("select#fieldcollege").val(); 
var deptf = $("select#fielddepartment").val(); 
var natf = $("select#fieldnationality").val(); 
var fstatusf = $("select#fieldfinalstatus").val(); 
var fyearf = $("select#fieldyear").val(); 

dataString = '&name='+ search + '&gender=' + gender + '&colf=' + colf + '&deptf=' + deptf + '&natf=' + natf + '&fstatusf=' + fstatusf + '&fyearf=' + fyearf +'&perpage=' + record; 
//dataString = 'starting='+page+'&name='+search+'&gender='+ gender+'&perpage='+ record+'&random='+Math.random(); 

    $.ajax({ 
    url: "tablepage.php", 
    type: "GET", 
    data: dataString, 
    success:function(data) 
    { 
    $('#divPageData').html(data); 
    } 
     }); 

Для PHP У меня есть использовать

header('Content-Type: text/html; charset=utf-8'); 

и а я использовать

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 

и для подключения тузд я использовать

mysqli_set_charset($conn,"utf8"); 

и AJAX я использовать

contentType: "application/x-www-form-urlencoded;charset=UTF-8", 

и все отображения данных правильно. даже выборка данных из mysql. Но данные внутри «divPageData» отображаются некорректно (примеры данных дисплея: «Ø Ø» ‰ عبدا »« ÜƒØ ± ÙŠ »... Ù ... Ø ... Ø ¨ ¨ † ع» Ù Ù ‰)

screenshot

И еще одно: его отлично работает в Mozila светлячок, но я перед проблемой в Google Chrome & IE.

+0

Пробовал ли вы использовать ваши инструменты разработчика, чтобы узнать, отвечает ли запрос XHR тем, что вы ожидаете? – Repox

+0

Да, я попробовал, и я получаю эту ошибку: Синхронный XMLHttpRequest в основной теме устарел из-за его пагубных последствий для конечного пользователя. Для получения дополнительной информации посетите http://xhr.spec.whatwg.org/. jquery.min.js: 137 (И эта ошибка возникла по типу содержимого) –

+0

Проверьте, используете ли вы последнюю версию jQuery. –

ответ

0

Использование Jquery .serialize()

The .serialize() method creates a text string in standard URL-encoded notation. It can act on a jQuery object that has selected individual form controls, such as <input> , <textarea> , and <select> : $("input, textarea, select").serialize();

Изменение dataString в $('#formid').serialize()

Для хранения использовать арабские данные ниже contentType в AJAX

contentType: "application/x-www-form-urlencoded;charset=UTF-8", 

Php file

header ('Content-Type: text/html; charset=UTF-8'); 

Declare кодирующих META тег, он вызывает браузер для загрузки кодовой UTF-8 перед отображением страницы.

echo '<meta http-equiv="Content-type" content="text/html; charset=UTF-8" />'; 
0

Какой код просмотра программка вы используете (notpad ++, возвышенный ЭСТ.)? У меня возникла проблема, когда я сохранил свой php-файл в другом стиле профайла, возможно, у вас такая же проблема.

+0

Я создал весь файл php через Dreamweaver, используя кодировку UTF-8 по умолчанию. –

0

Возможно, ваши таблицы базы данных MySqli не настроены с использованием UTF-8 ??

+0

Если вы видите изображение, то в поле со списком будут получены правильные данные из базы данных. –

0

3 причины я могу думать о

  1. есть символ BOM на верхней части страницы tablepage.php.Подробнее об этом here

  2. Ваша таблица mysql для этих данных не настроена правильно для utf8.

  3. Вы дважды кодируете/декодируете данные. Убедитесь, что существует только одно преобразование данных utf8. Попробуйте удалить заголовок php или кодировку ajax и посмотреть, что произойдет