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 如何在scanpy上做差异基因和通路富集?
  • ¥20 关于#硬件工程#的问题,请各位专家解答!
  • ¥15 关于#matlab#的问题:期望的系统闭环传递函数为G(s)=wn^2/s^2+2¢wn+wn^2阻尼系数¢=0.707,使系统具有较小的超调量
  • ¥15 FLUENT如何实现在堆积颗粒的上表面加载高斯热源
  • ¥30 截图中的mathematics程序转换成matlab
  • ¥15 动力学代码报错,维度不匹配
  • ¥15 Power query添加列问题
  • ¥50 Kubernetes&Fission&Eleasticsearch
  • ¥15 報錯:Person is not mapped,如何解決?
  • ¥15 c++头文件不能识别CDialog