有人可以帮我解决这个if语句吗? 我每次加载页面时都会显示我的表单,但在提交表单后它会消失! 也许这是“endif”语法让我感到困惑,但我无法正确完成这一点...... 这是代码:
<?php
if ($this->input->post('submit') && $this->input->post('categories')):
foreach($tagedImages as $image):
?>
<div class="thumb">
<?php echo'<a href="/toKoritsi/uploads/'.$image.'"/> <img src="/toKoritsi/uploads/thumbs/'.$image.'"/></a>' ?>
</div>
<?php
endforeach;
elseif(isset($photosQuery) && count($photosQuery)):
foreach($photosQuery->result_array() as $photo):
?>
<div class="thumb">
<?php echo'<a href="/toKoritsi/uploads/'.$photo['name'].'"/> <img src="/toKoritsi/uploads/thumbs/'.$photo['name'].'"/></a>' ?>
</div>
<?php
endforeach;
endif;
$options = array(
'bracelet' => 'Bracelets',
'ring' => 'Rings',
'bag' => 'Bags',
'earing' => 'Earings'
);
echo form_open("toKoritsi/gallery");
echo form_dropdown('categories', $options, 'bracelet');
echo form_submit('submit', 'Choose');
echo form_close();
?>
提前感谢!
答案 0 :(得分:0)
foreach($tagedImages as $image)
应foreach($taggedImages as $image)
吗?
代码的格式非常难看。如果您打算获得格式良好的HTML输出,也许您应该考虑使用Tidy或提供该功能的模板引擎。
答案 1 :(得分:0)
您肯定需要正确格式化代码。
我还建议您尝试将PHP整合到块中,并将其与HTML分开。
您可以在其中一些HTML元素中执行所有条件和回声:
<div>
<?php /*...*/ ?>
</div>
与你现在所做的相反:
<?php /*...*/ ?>
<div>
<?php /*...*/ ?>
</div>
<?php /*...*/ ?>
此外,像这些块这样的事情毫无意义:
<?php endforeach;?>
<?php endif;?>
即使您不得不将代码分成小块,也不会更容易说:
<?php
endforeach;
endif;
?>
编辑:在重新格式化和清理问题来源之前提供了此答案。在我能够更好地了解发生了什么之前,我甚至无法解决原始问题。
这可能听起来有些愚蠢,但你确定你的gallery
控制器表现正常吗?如果您正在提交并且其中一个CodeIgniter函数出现错误,则可能会在提交后弄乱渲染。
答案 2 :(得分:0)
我不知道您网站的网址结构是什么样的,但您确定要将表单提交到正确的位置吗?
根据CI user guide,它会提交给/index.php/toKoritsi/gallery
,但这取决于您的配置偏好。