帮助php if语句

时间:2010-09-08 15:31:31

标签: php forms codeigniter if-statement

有人可以帮我解决这个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();
?>

提前感谢!

3 个答案:

答案 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,但这取决于您的配置偏好。