我正在使用以下代码:
<?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'>";
?>
这是渲染按钮的正确方法吗?
答案 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")
这是做你想要的更好的方法:)。 不要忘记,在视图上支持国际化也是一种很好的做法。