0

我需要显示和隐藏一种形式是客户是否登录。

我有这个帮手:

    <?php
    if ($this->helper('customer')->isLoggedIn() ) {
        echo "Hide Form";
    } else {
        echo "<form id="form1" name="form1" method="post" action="post.php">
<input name="Type your name" type="text" value="name" />
<label>
  <input type="submit" name="send" id="send" value="Submit" />
</label>
</form>"; 
    }
    ?>

谢谢

4

3 回答 3

11
<?php
    if ($this->helper('customer')->isLoggedIn() ) {
        $showHide = "style=display:none";
    } else { 
        $showHide = "style=display:block";
    }?>
    <form id="form1" name="form1" method="post" action="post.php" <?php echo $showHide;?> >
        <input name="Type your name" type="text" value="name" />
        <label>
            <input type="submit" name="send" id="send" value="Submit" />
        </label>
    </form>
于 2012-08-08T21:09:37.447 回答
1

我的猜测是您的问题来自您正在回显的 html 中的引号。Php 看到那个块echo "<form id="后面跟着一堆乱码,它不知道该怎么处理。

解决方案取决于该代码块的位置。如果它在模板(.phtml)文件中,那么 Kalpesh Mehta 的方法将起作用。

如果它位于块、助手或控制器之类的东西中,他们的解决方案将不起作用。在这种情况下,最简单的解决方案是将两个外部双引号(“)更改为单引号(')。

于 2012-08-08T21:32:29.180 回答
0

我已经在审查文件 .phtml 中尝试过这个选项

<script type="text/javascript">
function hideshow(which){
if (!document.getElementById)
return
if (which.style.display=="block")
which.style.display="none"
else
which.style.display="block"
}
</script>
<?php
    if ($this->helper('customer')->isLoggedIn() ) {
        $showHide = "style=display:none";
    } else { 
        $showHide = "style=display:block";
    }?>
<?php if(Mage::helper('oscheckout')->isCouponActive()):?>
<div class="fivecol" id="coupon-container">
    <?php echo $this->getChildHtml('coupon') ?>
</div>
于 2012-08-09T06:33:53.840 回答