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条)

报告相同问题?

悬赏问题

  • ¥50 yalmip+Gurobi
  • ¥20 win10修改放大文本以及缩放与布局后蓝屏无法正常进入桌面
  • ¥15 angular开发过程中,想要读取模型文件,即图1的335行,会报404错误(如图2)。但我的springboot里配置了静态资源文件,如图3。且在该地址下我有模型文件如图4,请问该问题该如何解决呢?
  • ¥15 itunes恢复数据最后一步发生错误
  • ¥15 关于#windows#的问题:2024年5月15日的win11更新后资源管理器没有地址栏了顶部的地址栏和文件搜索都消失了
  • ¥100 H5网页如何调用微信扫一扫功能?
  • ¥15 讲解电路图,付费求解
  • ¥15 有偿请教计算电磁学的问题涉及到空间中时域UTD和FDTD算法结合的
  • ¥15 vite打包后,页面出现h.createElement is not a function,但本地运行正常
  • ¥15 Java,消息推送配置