dongmi8980 2012-05-08 01:14
浏览 83
已采纳

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

I'm trying to use a php function within a template html form that is being assigned as a php variable. I know that I can use standard $ variables and they will display ok, but I don't know how to use a function.

Essentially, I have a database with a set of values that I want to use to populate a drop down select form. I need to display the form in a couple of places so it makes sense to template the form with a variable.

So far I have the following PHP. Any help would be gratefully received! The array works fine - but displaying it within the form I'm struggling with.

$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;

Thanks, Simeonenter code here

  • 写回答

2条回答 默认 最新

  • dthhlf1777 2012-05-08 01:19
    关注

    You cannot use a loop inside a heredoc but you can use variables.

    As you already have your list, what you can do is:

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

    And in your heredoc:

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

    Edit: Note that you need to do that for all variables you include in the heredoc, so:

    <input name="userid" type="hidden" id="userid" value={$varuserid} />
                                                         ^          ^
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 乌班图ip地址配置及远程SSH
  • ¥15 怎么让点阵屏显示静态爱心,用keiluVision5写出让点阵屏显示静态爱心的代码,越快越好
  • ¥15 PSPICE制作一个加法器
  • ¥15 javaweb项目无法正常跳转
  • ¥15 VMBox虚拟机无法访问
  • ¥15 skd显示找不到头文件
  • ¥15 机器视觉中图片中长度与真实长度的关系
  • ¥15 fastreport table 怎么只让每页的最下面和最顶部有横线
  • ¥15 java 的protected权限 ,问题在注释里
  • ¥15 这个是哪里有问题啊?