我在如何将我的html标签放到我的php foreach上时遇到了一些问题。
首先,我有这个代码,并与布局工作正常。
foreach ($query->result() as $row)
{
echo '<div class="col-md-6">';
echo '<div class="additional-amenities">';
echo '<span class="available"><i class="fa fa-check-square"></i></span> <strong>{lang_bname}:</strong><span>'.$row->comminame.'</span>';
echo '</div>';
echo '<div class="additional-amenities">';
echo '<span class="available"><i class="fa fa-check-square"></i></span> <strong>{lang_yrlaunched}:</strong><span>'.$row->mdeveloper.'</span>';
echo '</div>';
echo '<div class="additional-amenities">';
echo '<span class="available"><i class="fa fa-check-square"></i></span> <strong>{lang_yrcompletion}:</strong><span>'.$row->gatedcommunity.'</span>';
echo '</div>';
echo '<div class="additional-amenities">';
echo '<span class="available"><i class="fa fa-check-square"></i></span> <strong>{lang_tfloors}:</strong><span>'.$row->theme.'</span>';
echo '</div>';
echo '<div class="additional-amenities">';
echo '<span class="available"><i class="fa fa-check-square"></i></span> <strong>{lang_bheight}:</strong><span>'.$row->resbuilding.'</span>';
echo '</div>';
echo '</div>';
echo '<div class="col-md-6">';
echo '<div class="additional-amenities">';
echo '<span class="available"><i class="fa fa-check-square"></i></span> <strong>{lang_developer}:</strong><span>'.$row->commbuilding.'</span>';
echo '</div>';
echo '</div>';
}
现在我更改了我的代码(请查看下面的内容),并且对如何将html代码放入我之前的代码感到困惑。
这是我的代码
<div class="col-md-6">
<?php foreach ($treefields as $key=>$item): ?>
<?php if($key==0)echo '<div class="additional-amenities">' ?>
<?php if($item['title'] == $estate_data_option_1057): ?>
<span class="available"><i class="fa fa-check-square"></i></span><?php _che($item['title']); ?>
<?php if (count($item['childs']) > 0):
end($item['childs']);
$lastElementKey = key($item['childs']);
foreach ($item['childs'] as $key_c=>$child): ?>
<?php if(!empty($child['url'])): ?>
<span class="available"><i class="fa fa-check-square"></i></span><a href='<?php _che($child['url']); ?>'><?php _che($child['title']); ?></a>
<?php else:?>
<span class="available"><i class="fa fa-check-square"></i></span><span><?php _che($child['title']); ?></span>
<?php endif;
if($lastElementKey != $key_c)echo ' - ';?>
<?php endforeach;endif; ?>
<?php echo '</div>';?>
<?php else: ?>
<?php ?>
<?php endif;?>
<?php endforeach; ?>
</div>
谢谢!
我的价值观没有问题,只是在插入HTML标签时遇到问题
答案 0 :(得分:1)
混合HTML和PHP总是很痛苦。最好只在PHP标签中使用PHP,并在这些之外使用HTML。像这样:
您忘了一个endif;
。
<div class="col-md-6">
<?php foreach($treefieldsas as $row):
if($row['id'] == 0): ?>
<div class="additional-amenities">'
<?php if($row['title'] == $estate_data_option_1057): ?>
<span class="available"><i class="fa fa-check-square"></i></span><?php _che($row['title']); ?>
<?php if(count($row['childs']) > 0):
end($row['childs']);
$lastElementKey = key($row['childs']);
foreach($row['childs'] as $row2):
if( !empty($row2['url'])): ?>
<span class="available"><i class="fa fa-check-square"></i></span><a
href='<?php _che($row2['url']); ?>'><?php _che($row2['title']); ?></a>
<?php else: ?>
<span class="available"><i class="fa fa-check-square"></i></span>
<span><?php _che($row2['title']); ?></span>
<?php endif;
if($lastElementKey != $key_c):?>
-
<?php endif;
endforeach;
endif;
endif; ?>
</div>
<?php else: ?>
<?php endif;
endforeach; ?>
</div>
如果不知道你的代码在做什么。所以我稍微改了一下,随意将它改回你正在使用的值。但是这样的事情应该有效。
难以阅读:
例如,这段代码将难以阅读,因为所有内容都在PHP中:
<?php if($row['title'] == $estate_data_option_1057):
{
echo '<span class="available" ><i class="fa fa-check-square" ></i ></span >'. _che($row['title']);
}?>
因为HTML代码在PHP标记内。我更倾向于使用:
代替{}
,因为它更容易阅读。
另一个事实:
<?php endif; ?>
<?php endforeach;
endif;
endif; ?>
不干净。你应该用这个:
<?php endif;
endforeach;
endif;
endif; ?>
(开始和结束PHP标签)。
希望这可以解决一些问题。
答案 1 :(得分:1)
你应该这样做:
$html = "FIXED_HEAD_ELEMENT";
foreach ($query->result() as $row) {
$html .= 'YOUR_HTML';
if (condition == TRUE){
$html .= 'THIS';
} else {
$html .= 'THAT';
}
}
$html .= "FIXED_BOTTOM_ELEMENT";
echo $html;
我总是这样做。它非常干净和可读。