我希望在警报中显示包含诸如“é”和“à”等强调字母的法语句子。所以我在我的php文件的元标记中使用utf-8字符集,以便在javascript警报中正常显示字母“é”和“à”。问题是,当获取ajax responseText时,我会在响应中获得元标记的代码。那么如何只得到php文件的echo结果?
这是ajax使用的php文件:
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
</head>
<?php
define("ROOT_PATH", "../../");
include ROOT_PATH . 'config.ajax.php';
include ROOT_PATH . 'config.inc.php';
require_once RP_MODELS.'produit.class.php';
$prod_code = $_GET['prod_code'];
$db =& new DbConn() ;
$produit =& new produit($db->getInstance()) ;
$tab = $produit->lire($prod_code) ;
if ( $tab['cnt'] > 0)
$rep = "Le code produit " . $prod_code . " existe déjà !" ;
else
$rep = "0" ;
echo $rep;
?>
所以我只希望ajax responseText返回$ rep变量。如何实现?
答案 0 :(得分:1)
<?php
header('Content-Type: text/html; charset=utf-8');
define("ROOT_PATH", "../../");
include ROOT_PATH . 'config.ajax.php';
include ROOT_PATH . 'config.inc.php';
require_once RP_MODELS.'produit.class.php';
$prod_code = $_GET['prod_code'];
$db =& new DbConn() ;
$produit =& new produit($db->getInstance()) ;
$tab = $produit->lire($prod_code) ;
if ( $tab['cnt'] > 0)
$rep = "Le code produit " . $prod_code . " existe déjà !" ;
else
$rep = "0" ;
echo $rep;
?>
读:
答案 1 :(得分:1)
您不需要在此脚本上使用元标记。您只需要在浏览器必须呈现的页面上使用它。
答案 2 :(得分:0)
从此文件中删除包含元标记的html代码,然后使用
echo utf8_encode($rep);
答案 3 :(得分:0)
您需要检查请求是否是Ajax请求,请尝试以下操作:
if(isset($_SERVER['HTTP_X_REQUESTED_WITH']) && $_SERVER['HTTP_X_REQUESTED_WITH'] == 'XMLHttpRequest') {
// This is an ajax request
echo $rep;
die();
}
答案 4 :(得分:0)
您可以将一个变量添加到您可以识别AJAX请求的URL,也可以设置一个特殊的X-Requested-With标头(我认为它是由JQuery自动设置的)。在PHP中,您可以检查是否设置了此标头。
另外,不要忘记设置Content-Type标题,您还应该在其中指定UTF-8。