我遇到了从php获取数据并使用ajax方法显示数据的问题。
我的主index1.php文件有div显示所有数据:
<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" />
对于mysql连接我使用
mysqli_set_charset($conn,"utf8");
和ajax我用
contentType: "application/x-www-form-urlencoded;charset=UTF-8",
并且所有数据都正确显示。甚至从mysql中获取数据。但是“divPageData”内的数据显示不正确(样本显示数据:هدىعبدآكريÙ...Ù......ØÙ...دب††Ø¹Ù”Ù‰)
还有一件事:它在Mozila firefox中完美运行,但我在Google Chrome&amp; IE。
答案 0 :(得分:0)
使用Jquery .serialize()
.serialize()方法以标准URL编码方式创建文本字符串 符号。它可以作用于已选择个体的jQuery对象 表单控件,例如
<input>
,<textarea>
和<select>
: $(&#34;输入, textarea,选择&#34; ).serialize(); 强>
将dataString
更改为 $( '#formid' ).serialize()
要在ajax
中的contentType
下方存储阿拉伯数据
contentType: "application/x-www-form-urlencoded;charset=UTF-8",
Php file
header ('Content-Type: text/html; charset=UTF-8');
声明编码META标记,它会导致浏览器加载UTF-8字符集 在显示页面之前。
echo '<meta http-equiv="Content-type" content="text/html; charset=UTF-8" />';
答案 1 :(得分:0)
您正在使用哪种代码查看程序(notpad ++,sublime等)?我有一个问题,我以不同的鼓励方式保存我的php文件,也许你有同样的问题。
答案 2 :(得分:0)
可能你的MySqli数据库表还没有配置UTF-8 ??
答案 3 :(得分:0)
我能想到的3个理由
tablepage.php页面顶部有一个BOM字符。详细了解here
没有为utf8正确配置这些数据的mysql表。
您对数据进行双重编码/解码。验证数据只有一个utf8转换。尝试删除php标头或ajax charset,看看会发生什么