首页 > 解决方案 > 使用来自 PHP 函数的数据填充 HTML 列表框

问题描述

我试图找出如何用我在 PHP 代码中收到的数据填充 HTML ListBox。

HTML 代码:

<select id="listObject" name="listObject" size="number_of_options" multiple="multiple" style="width:90%; height:300px">
    <option value="option1">1</option>
    <option value="option2">2</option>
    <option value="Option3">3</option>
</select> 

还有我的 PHP 代码:

<?php 

if ($_SERVER['REQUEST_METHOD'] === 'GET') {
   ( isset($_GET['url'])      ? $url=$_GET['url']            : "");
   ( isset($_GET['channel'])  ? $chan =$_GET['channel']      : "");  
   ( isset($_GET['getdata'])  ? $repeater =$_GET['getdata']  : "");
   ( isset($_GET['putdata'])  ? $ownerUUID =$_GET['putdata']  : "");
   $objectname = "";
   $objectuuid = "";
    
   if(  isset($_GET['url']) ) {
      $entry_line = "** $url | $chan |"; // save the url with a double asterisk marker
      $fp         = fopen("uuid.txt", "w");  // w,r,a
      fputs($fp, $entry_line);
      fclose($fp);
   };
 
  
  if( isset($_GET['putdata']) ) {
    $items = explode(" ", $ownerUUID);
    $objectname = $items[0];
    $objectuuid = $items[1];
    echo "TMOReport|{$objectname}|some more text";
    // tried this but nothing //
    echo '<select name="listObject" id="listObject">';
    echo "<option value={$objectname}></option>";
        echo '</select>';
  };
 ?>

我根据我发现的东西评论了我尝试的回声部分,但这似乎不起作用。

PHP 代码被另一台服务器上的事件触发,该事件包含该信息并希望将 $objectname 添加到 HTML 的值中

标签: phphtmllistbox

解决方案


您可以通过以下方式通过将返回 html 的函数来执行此操作。只要您想这样做就可以了,因为您提到它是用php。

public function populate_listbox($function, $id, $name, $selected = null)
{
    $data = $this->$function();
    $html = '<select id="' . $id . '" name="' . $name . '">';
    foreach ($data as $key => $value) {
        $html .= '<option value="' . $key . '" ' . (($key == $selected) ? 'selected' : '') . '>' . $value . '</option>';
    }
    $html .= '</select>';
    return $html;
}

该函数接收 3 个强制参数和一个可选参数。$function是一个选项数组,$id正如$name变量的名称所说,是 id 和将具有 Select 的名称,最后$selected在您希望默认选择该 select 的选项之一时服务。


推荐阅读