【问题标题】:How to create a drop down list with php from an sql table AND display a dynamic default form value in the drop down list如何使用 php 从 sql 表创建下拉列表并在下拉列表中显示动态默认表单值
【发布时间】:2019-03-29 22:09:33
【问题描述】:

我正在为用户创建一个表单以更改有关成员的人口统计信息。我想使用 PHP 在 HTML 表单中提供下拉列表,并根据表中的值显示默认值。

示例:根据我们提供的邮政编码下拉列表更改会员的邮政编码(无需文本输入,只需从列表中选择)并默认显示会员当前的邮政编码分配。

<form>

<?php 
  // NOTE - geo meeting is equivalent to zipcodes
   $geo_locations = '<select name="geo1" id="geo1"> <option selected value="BAL"> Select new Location</option>';
     WHILE($row = mysqli_fetch_assoc($geomeetings))
                {
         $geo_locations .= ' <option value="'.$row['geo1'].'">'.$row['geoloc'].'</option>';
                }
         $geo_locations .= '</select>';
              echo '<TD>'.$geo_locations.'</TD>';
  // End of dropdown list of geo meeting locations -
?>

【问题讨论】:

  • 你的问题到底是什么?
  • 请参阅下面发布的答案。如果这回答了您的问题,请单击答案左侧的复选框将其标记为正确并关闭问题。
  • 嗨 - 只是跟进。你的问题得到了满意的回答吗?如果我们可以提供更多帮助,请在其中一个答案下方添加评论,或编辑您的问题以阐明您还需要什么帮助。否则,如果您可以选择“最佳答案”(通过单击答案旁边的复选标记)来结束问题,那就太好了。如果没有答案提供有用的信息,请添加您自己的答案并选择它作为最佳答案。这样做你不会得到任何分数,但这将结束这个问题。 谢谢!
  • 嘿 TW - 再次跟进。我们能否麻烦您选择一个最佳答案或提供一个最佳答案来结束问题?那会帮助我们。 非常感谢

标签: php html forms mysqli


【解决方案1】:

所以,您有 $geomeetings 表,其中包含所有邮政编码。您还有另一个表 - 用户表 - 包含该用户的邮政编码。

即兴且未经测试,但你明白了......

<?php 
    // NOTE - geo meeting is equivalent to zipcodes
    $user_geo_loc = '12345'; //This value comes from the user table
    $geo_locations = '
        <select name="geo1" id="geo1">
            <option value=""> Select new Location</option>
    ';
    while( $row = mysqli_fetch_assoc($geomeetings) ){
        $issel = '';
        if ($user_geo_loc == $row['geoloc']) $issel = ' selected';
        $geo_locations .= ' <option value="'.$row['geo1'].'" ' .$issel. '>'.$row['geoloc'].'</option>';
    }
    $geo_locations .= '</select>';
  // End of dropdown list of geo meeting locations -
?>

<form>
    <table>
        <tbody>
            <tr>
                <td>
                    Location: <?php echo $geo_locations; ?>
                </td>
            </tr>
        </tbody>
    </table>
</form>

请注意,此结构也可以替换为 TERNARY 运算符,如下所示:

$issel = ($user_geo_loc == $row['geoloc']) ? ' selected' : '';

(那就是IF $user_geo == $row_geo THEN $issel = 'selected' ELSE $issel = ''

【讨论】:

  • 我正在尝试提供一个下拉列表,其中包含基于成员当前分配的默认显示的元素之一。
  • 已更新答案以解决此问题。基本上,对于 while 循环中的每个 &lt;option&gt; 行,您测试该 $geo 选项的值是否等于您存储在用户表中该用户邮政编码的 $geo 值。
  • 从你上面的描述(比我的描述更好)你明白了。不幸的是,我目前无法对此进行测试。以后会做。只是想回复并说声谢谢!这可能会做到,(如果是这样,我会在回答您的问题按钮中回复)。
  • 再次感谢您的帮助。不幸的是,这不提供下拉列表。也许我完全不明白。但是,我确实喜欢三元选项。漂亮干净的代码。我已插入文件,但现在将其注释掉。接下来我将添加第二条评论。
  • 我正在尝试将变量分配给 XXX(如下)作为成员的当前位置。但我不断收到“T-VARIABLE”错误。显然我不能分配一个变量。 $geo_locations = ' ';解析错误:语法错误,意外'$mbr_geo1' (T_VARIABLE) in
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-11-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-10-20
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多