在php表单模板变量中嵌入php函数

时间:2012-05-08 01:14:13

标签: php html templates

我正在尝试在模板html表单中使用php函数,该表单被指定为php变量。我知道我可以使用标准的$变量,它们会显示ok,但我不知道如何使用函数。

基本上,我有一个数据库,其中包含一组值,我想用它来填充下拉选择表单。我需要在几个地方显示表单,因此使用变量模板化表单是有意义的。

到目前为止,我有以下PHP。感谢任何帮助!数组运行正常 - 但是在我正在努力的形式中显示它。

$query = "SELECT 
  property.propertyid,
  property.reference,
  property.userid, 
  users.userid,
  users.username
FROM 
  property
    LEFT JOIN users ON property.userid = users.userid
WHERE 
  property.userid = ".$varuserid."
  ";

$result = mysql_query($query) or die(mysql_error());
$listarr=array();  
while($qy = mysql_fetch_array($result)){
$listarr[] = "<option value=\"".$qy['propertyid']."\">".$qy['reference']."</option>";
}

$form = <<<HTML
<form name="insert" method="post" action="?page=account&amp;a=insert&amp;form=1">
  <table width="100%" border="0" cellpadding="4" cellspacing="0">
    <tr> 
      <td width="24%" align="left" valign="top">Property ID</td>
      <td width="76%">      
        <select name="propertyid" size="1">

foreach($listarr as $key => $value) { echo $value }

        </select>
      </td>
    </tr>
    <tr> 
      <td align="left" valign="top">&nbsp;</td>
      <td>
      <input name="userid" type="hidden" id="userid" value=$varuserid />
      <input type="submit" name="submit" value="Insert transaction!" /></td>
    </tr>
  </table>
</form>
HTML;

谢谢, 西麦enter code here

2 个答案:

答案 0 :(得分:0)

这是我倾向于做的事情:

<select name="propertyid" size="1">    
<?php foreach($listarr as $key => $value) { ?>
    <option value="<?php echo $value; ?>"><?php echo $value; ?></option> 
<?php } ?>
</select>

这样你仍然可以在页面上看到格式:)

答案 1 :(得分:0)

您不能在heredoc内使用循环,但可以使用变量。

正如您已有的列表,您可以做的是:

while($qy = mysql_fetch_array($result)){
    $listarr[] = "<option value=\"".$qy['propertyid']."\">".$qy['reference']."</option>";
}
$list = implode(" ", $listarr);

在你的heredoc中:

<select name="propertyid" size="1">
    {$list}
</select>

编辑:请注意,您需要为heredoc中包含的所有变量执行此操作,因此:

<input name="userid" type="hidden" id="userid" value={$varuserid} />
                                                     ^          ^