如何解除<meta />标签?

时间:2011-07-12 10:57:57

标签: php html ajax

我希望在警报中显示包含诸如“é”和“à”等强调字母的法语句子。所以我在我的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变量。如何实现?

5 个答案:

答案 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;    

?>

读:

http://php.net/manual/en/function.header.php

答案 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。