所以我有麻烦让我的html显示在我的php脚本foreach循环。我将数组包含在header。php页面中这也包含在我正在构建的网页中。现在我的网站只显示一个空井,因为我使用bootstrap。
我已经试过了,只是把常规的html在div和它的工作,这意味着有一些错误的php脚本。
My php arrays
<?php
//Teams
$teams = array(
"fnatic" => array(
title => "Fnatic",
teamLocation => "Sweden"
),
"tsm" => array(
title => "TSM",
teamLocation => "Denmark"
),
"envyus" => array(
title => "EnvyUs",
teamLocation => "France"
),
);
?>
这是我的html。中间部分是我要显示foreach循环的地方。我已经包含了header.php,其中包含数组,以及footer.php,其中包含所有脚本。
<?php
define('TITLE', 'PROS | CSGOPLAYER CONFIGS');
include('includes/header.php');
include('includes/minicarousel.php');
?>
<div class="container-fluid">
<div class="row">
<div class="well">
<?php foreach ($teams as $team => $item) { ?>
<h1><a href="team.php?item=<?php echo $team; ?>"><?php echo $item[title]; ?></h1>
<p><?php echo $item[teamLocation];?></p>
<?php } ?>
</div>
</div>
</div><!--Contect-->
<?php
include('includes/footer.php');
?>
我的建议是在井中做$teams
的var_dump
,然后exit()
脚本来验证团队是否正确启动。
另外,我建议使用下面的语法,因为我觉得它更清晰,但你的里程当然会有所不同:
<?php
$well = '';
foreach ($teams as $team => $item) {
$well .= <<<WELL
<h1><a href="team.php?item={$team}">{$item['title']}</a></h1>
<p>{$item['teamLocation']}</p>
WELL;
// The above line must start at column 1, to work as here-document
}
print $well;
?>
此外,您使用的语法应该发出大量未引号字符串的警告。您没有看到这些警告的事实告诉我,您将error_reporting
设置得太低,并且可能也关闭了错误显示。这可以解释为什么你看到的是一个空井,而不是一个有用的错误信息。
title => "Fnatic",
teamLocation => "Sweden"
等,应该是
'title' => 'Fnatic',
'teamLocation' => 'Sweden'
单引号或双引号是一个选择的问题,但最好是一些引号总是在适当的位置。
说了这么多,你的代码应该是可以工作的,所以要考虑到其他地方可能出现错误的可能性。
你错过了你的a
标签更近。还可以考虑在PHP中启用short_open_tags
,并使用<?
和?>
(更有效)。尝试print
代替echo
。当在循环中执行print_r($item)
时会发生什么?
<div class="container-fluid">
<div class="row">
<div class="well">
<?php
foreach ($teams as $team => $item) {
?>
<h1>
<a href="team.php?item=<?php echo $team; ?>">
<?php
print $item[title];
?>
</a>
</h1>
<p>
<?php
print $item[teamLocation];
?>
</p>
<?php
}
?>
</div>
</div>
</div><!--Contect-->
你应该去掉那个过时的逗号。
$teams = array(
"fnatic" => array(
title => "Fnatic",
teamLocation => "Sweden"
),
"tsm" => array(
title => "TSM",
teamLocation => "Denmark"
),
"envyus" => array(
title => "EnvyUs",
teamLocation => "France"
)
);
<?php
$html = array();
foreach($teams as $team => $item){
$html[] = "<h1><a href='team.php?item=".$team."'>".$item['title']."</a><h1>".<p>".$team['teamLocation']."</p>";
}
?>
div.well内部
<?php echo implode('' , $html); ?>;
数组键也应该用引号括起来,如:
...
'title'=>'Fnatic',
...