我试图在输入字段的value元素中包含数据库表中的值 这就是我所拥有的,但它不起作用:
?><input type="text" size="10" value="<?= date("Y-m-d",
strtotime($rowupd['upcoming_event_featured_date'])) ?>" name="upcoming_event_featured_date"
id="keys"/><?php
我以前做过这个,但我通常会这样打印出来:
print '<input type="text" size="10" value="'.date("Y-m-d",
strtotime($rowupd['upcoming_event_featured_date'])).'" name="upcoming_event_featured_date"
id="keys"/>';
在不使用print ''
的情况下执行此操作的适当方法是什么?
答案 0 :(得分:3)
总是使用完整的PHP标记是个好主意,因为如果您移动到其他服务器或者您的配置被更改为不允许使用短标记,那么这将使您的应用不会中断。
?>
<input type="text" size="10" value="<?php
echo(date("Y-m-d", strtotime($rowupd['upcoming_event_featured_date'])));
?>"name="upcoming_event_featured_date" id="keys"/><?php
另请注意,您缺少PHP代码末尾的;
。
您可能会发现将整个事情保存在PHP中更好,并且只需echo()
HTML,因为这将使您不必在PHP之间来回切换到HTML解析。
答案 1 :(得分:2)
正如其他一些回复所提到的,请确保在php.ini中启用了short_open_tag
。这允许您使用<?=
语法。很多人建议不要使用短标签,因为并非所有服务器都允许使用短标签,但如果您确定不会将其移至另一台服务器,我认为这很好。
除此之外,我不知道任何技术理由选择一种方式而不是另一种方式。代码可读性应该是您的主要关注点。例如,您可能希望在输出变量之前将其设置为变量:
$featured_date = date("Y-m-d",strtotime($rowupd['featured_date']));
?><input type="text" value="<?=$featured_date?>" name="featured_date" /><?php
事实上,当你处于一个HTML块的中间时,我会尝试做尽可能少的处理。如果在脚本开头定义所有变量,然后输出所有HTML,根据需要插入变量,事情就会变得更加清晰。你现在几乎要进入模板,但不需要模板引擎的开销。
答案 2 :(得分:1)
您可以使用short_open_tag ini指令打开&lt;?=打印快捷方式。
如果没有,则必须使用print或echo来完成此操作。
您可以尝试:
ini_set('short_open_tag', true);
答案 3 :(得分:0)
你可以做到
[...] ?><input
type="text"
size="10"
value="<?php echo date("Y-m-d", strtotime($rowupd['upcoming_event_featured_date'])) ?>"
name="upcoming_event_featured_date"
id="keys"/>
<?php [...]
如果您的PHP配置中没有启用short_open_tag
。