请帮忙。我在 jQuery 上实现了一个函数,它发送数据(JSON 对象),但由于编码问题,我无法得到正确的答案。>>>>>>>>>网站编码:AJAX文件:UTF-8
JS:
function loadvariant (hash)
{
var id_quest = $("#sel_quest").val();
var nocache = Math.random();
// Отправляем ajax запроc
$.ajax({
type: "POST",
url: "/wp-content/plugins/votefe/php/ajax/loadvote.php",
data: {hash:hash,id_quest:id_quest,nocache:nocache},
dataType: "json"
}).done(function(msg) {
if (msg['return']==1) {
$('#tab_svariant .ovar').remove();
for (var i=0;i<msg['variant'].length;i++) {
var html = "<tr class='ovar'><td>"+msg['variant'][i]['id']+"</td>
<td>"+msg['variant'][i]['param']+"</td><td>"+msg['variant'][i]['style']+"</td><td>
<input type=\"checkbox\" name=\"id_variant_"+msg['variant'][i]['id']+"\">
</td></tr>";
$('#tab_svariant').append(html);
}
return true;
} else {
alert(msg['return']+ " - Внутрення ошибка сайта. Попробуйте перезагрузить страницу, или
обратитесь к разработчикам");
return false;
}
});
}
PHP:
session_start();
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
header("Last-Modified: ".gmdate("D, d M Y H:i:s")." GMT");
header("Cache-Control: no-store, no-cache, must-revalidate");
header("Cache-Control: post-check=0, pre-check=0", false);
header("Pragma: no-cache");
header('Content-Type: application/json; charset=utf-8');
include_once("../voteconf.php");
$results = array();
$results['return'] = 0;
//$results['variant'] = array();
$dbname = "two"; # Имя базы данных
$username = "fedor"; # Имя пользователя в БД
$host = "127.0.0.1"; # Хост MySQL сервера
$passw = "353488"; # Пароль к БД
$link = mysql_connect($host, $username, $passw);
if (!$link) $results['return'] = 2;
$db_selected = mysql_select_db($dbname, $link);
if (!$db_selected) $results['return'] = 3;
# Возвращаемые значения / ошибки
# 0 - Скрипт не отработал
# 1 - return ok (все хорошо)
# 2 - не соединился с базой
# 3 - не смог выбрвть базу.
# 4 - не верный хеш
# 5 - Не удалось получить ID вопроса.
# 6 - Ошибка запроса выборки
$hash = md5(VOTESECR);
if ($hash!=$_POST['hash']) $results['return'] = "4787 > ".$hash." > ".$_POST['hash'];
if (!isset($_POST['id_quest']) || $_POST['id_quest'] =='') $rezults['return'] = 5;
$id_quest = mysql_real_escape_string(htmlspecialchars($_POST['id_quest']));
if ($results['return'] == 0){
$sql = "SELECT v.id as id, v.param as param, s.name as style FROM wp_s_variant v LEFT JOIN
wp_s_style s ON v.id_style=s.id WHERE v.id_quest= '".$id_quest."'";
$res_variant = mysql_query($sql);
if (!$res_variant) $results['return'] = 6;
else {
while ($rv = mysql_fetch_assoc($res_variant)) {
$results['variant'][] = $rv;
}
$results['return'] = 1;
}
}
$json=json_encode($results);
echo $json;
html
<table id="tab_svariant">
<tr>
<th width="30px">ID</th>
<th width="300px">Вариант ответа</th>
<th width="400px">Стиль</th>
<th width="60px">Выбрать</th>
</tr>
</table>