2008-10-23 113 views
3

我想在輸入字段的value元素中包含來自數據庫表的值。
這是我有什麼,但它不工作:如何在html輸入標記的value元素中包含php變量?

?><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

我想有這樣做的各種方法,但現在我的問題是,哪個最好? – Brad 2008-10-23 19:21:00

回答

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解析。

+0

單線回聲不需要分號。 – 2008-10-25 17:06:21

1

可以使用short_open_tag INI指令打開<?=快捷打印。

如果不可用,則必須使用print或echo來完成此操作。

你可以試試:

ini_set('short_open_tag', true); 
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有別。

2

至於其他一些回覆提到,確保short_open_tag你的php.ini啓用。這使您可以使用<?=語法。很多人建議不要使用短標籤,因爲並非所有服務器都允許它們,但如果您確定不會將其移到另一臺服務器上,我認爲它沒有問題。

除此之外,我不知道任何技術原因選擇一種方式。代碼可讀性應該是你的主要焦點。例如,您可能希望輸出之前,你的值設置爲一個變量:

$featured_date = date("Y-m-d",strtotime($rowupd['featured_date'])); 

?><input type="text" value="<?=$featured_date?>" name="featured_date" /><?php 

其實,我想嘗試當你在HTML塊的中間是做盡可能少的加工地。如果您在腳本的開頭定義所有變量,然後輸出所有HTML,並根據需要插入變量,情況會更加清晰。在這一點上,你幾乎可以進入模板,但不需要模板引擎的開銷。

相關問題