我有几个HTML内容片段,可以根据世界地图的当前选定区域加载到页面上。这是请求的样子:
jQuery('#vmap').vectorMap({
map: 'world_en',
backgroundColor: '#fff',
// more map config options...
onRegionClick: function(element, code, region)
{
//Post request
$.ajax('/get_post_data.php', {
data: {region: region},
dataType: 'html',
success: function(response) {
$("#post").html(response);
}
});
}
});
这是get_post_data.php:
$result = '';
// Swtich based on region
switch($_REQUEST['region']) {
//Asia
case 'China':
case 'Japan':
$result = @include('includes/asia.inc.php');
break;
//Africa
case 'Ethiopia':
case 'Kenya':
$result = @include('includes/africa.inc.php');
break;
echo $result;
inc.php文件如下所示:
<h2>Asia</h2>
<p>The article for Asia region</p>
当AJAX运行时,相应的HTML会被发布到页面,但该段落包含在我没有在任何地方写过的额外h2标签中,它会发布&#34; 1&#34;作为p标签后的字符串。这是响应后标记的样子:
<div id="post">
<h2>Asia</h2>
<h2>
<p>The article for Asia region</p>
"1"
</h2>
</div>
我不知道为什么这两个额外的东西被添加到我想要的标记中。当我在控制台中查看响应时,我看到了正确的HTML,仍然添加了&#34; 1&#34;,但没有h2标签。
答案 0 :(得分:3)
因为您未能正确关闭h2
中的inc.php
标记
应该是
<h2>Asia</h2>
答案 1 :(得分:1)
您正在使用json_encode($ result);这就是你所展示的,可能会发生奇怪的事情。
尝试echo $ result;