如何根据条件创建HTML按钮?

时间:2009-12-15 11:49:20

标签: php html

我正在使用以下代码:

<?PHP
      if ($_Session['WorkMode'] == 'New' || $_Session['WorkMode'] == "") 
    echo "<input id='Submit' name='Submit' value='Submit' type='button'>";
      else
    echo "<input id='Update' name='Update' value='Update' type='button'>";
?>

这是渲染按钮的正确方法吗?

6 个答案:

答案 0 :(得分:2)

这完全有效且易读。

如果代码行数对您很重要,您也可以这样做:

<?php $action = ($_Session['WorkMode'] == 'New' || $_Session['WorkMode'])? "Submit" : "Update" %>
<input id="<?php echo $action ?>" name="<?php echo $action ?>" value="<?php echo $action ?>" type="button" />

我的PHP有点生疏,所以我可能会关注语法,但你明白了。

如果你使用像cakephp或symphony这样的框架,你可以使用他们的助手更容易地生成按钮。

答案 1 :(得分:2)

如果有效,那么是的,这是一种正确的方法。另一种方法,使用三元if语句可能是:

<?PHP $button = $_SESSION['WorkMode'] == 'New' 
     || $_SESSION['WorkMode'] == '' ? "Submit" : "Update"; ?>
<input id="<?php echo $button;?>" name="<?php echo $button;?>" 
     value="<?php echo $button;?>" type='button' />

真的是个人偏好和清晰度问题。我更喜欢将HTML作为HTML(而不是PHP字符串)编写,并使用PHP标记将变量回显到该HTML中。有些人可能不喜欢使用这种方法。如果你打开了PHP短标签,你甚至可以使用<?=$button;?>

答案 2 :(得分:1)

基本上,是的,你可以这样做。根据应用程序的大小和编程经验,您可能需要考虑开始使用模板系统(例如Smarty)。这样你就可以分离php代码和html标记。

祝你好运,
费边

答案 3 :(得分:0)

应该是

<?PHP      
if ($_Session['WorkMode'] == 'New' || $_Session['WorkMode'] == "")     
      echo "<input id='Submit' name='Submit' value='Submit' type='button'/>";      
else    
      echo "<input id='Update' name='Update' value='Update' type='button'/>";?>

答案 4 :(得分:0)

根据您希望从按钮中执行的操作,您可以考虑将其type更改为submit

修改

从响应中可以看出,您的代码功能正常。但是,你说PHP代码出现在按钮后面。

这对我来说意味着PHP解析器没有解析该文件。

RPK:您的网络服务器是否正确提供其他PHP文件?

答案 5 :(得分:0)

更好的方法是使用模板系统,只需将布局代码与逻辑分开:

view.php:

<?php if ($new): ?>
  <input id='Submit' name='Submit' value='Submit' type='button'>
<?php else: ?>
  <input id='Update' name='Update' value='Update' type='button'>
<?php endif; ?>

因此,$ new变量由逻辑代码(控制器)发出:

Controller.php这样:

$new = ($_Session['WorkMode'] == 'New' || $_Session['WorkMode'] == "");
include("view.php")

这是做你想要的更好的方法:)。 不要忘记,在视图上支持国际化也是一种很好的做法。