Как включить переменную php в элемент value тега ввода html? - PullRequest
3 голосов
/ 23 октября 2008

Я пытаюсь включить значение из таблицы базы данных в элемент значения поля ввода.
Это то, что у меня есть, но оно не работает:

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

Ответы [ 4 ]

3 голосов
/ 23 октября 2008

Рекомендуется всегда использовать полные теги 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.

2 голосов
/ 24 октября 2008

Как уже упоминалось в некоторых других ответах, убедитесь, что в вашем 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-код, вставляя переменные по мере необходимости. В этот момент вы почти погружаетесь в создание шаблонов, но вам не нужны накладные расходы на шаблонизатор.

1 голос
/ 23 октября 2008

Вы можете использовать директиву short_open_tag ini для включения ярлыка <? = Для печати. ​​</p>

Если это недоступно, вы должны использовать для этого либо print, либо echo.

Вы можете попробовать:

ini_set('short_open_tag', true);
0 голосов
/ 23 октября 2008

Вы можете сделать

[...] ?><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.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...