【问题标题】:Auto-generate selectbox options array with PHP使用 PHP 自动生成选择框选项数组
【发布时间】:2023-03-16 02:57:01
【问题描述】:

我一直在寻找,但我找不到具体的案例。我正在为开源软件程序编写一个插件,并使用它的 $form 类和函数来呈现我的表单,而无需手动插入 HTML。

我正在尝试创建一个最小年龄 (#) 和最大年龄 (#) 选择框字段,每个字段的范围从 1 到 100。我知道这样的事情可以通过类似的方式快速完成

for ($i = 1; $i <= 99; $i++)

然后将 $i 应用于您网页中的表单。但由于这是一个 MVC 程序,我(在大多数情况下)受限于可用的类、对象和函数。在此程序中创建选择框的实际选项时,您通常会执行以下操作:

$field->setOptions(array(
   "Value"=>"Text Label",

冲洗并重复。但是,由于我正在尝试制作大量数字列表,因此我一直在尝试找到一种方法来以某种方式使用 range() 或 array_push 到位。到目前为止,我已经尝试了以下方法:

    function forAge(){
    for ($i = 1; $i <= 99; $i++){
        $array[] = $i;
    }}

    $tminage->setOptions(array(
        $array[]=>$array[]));

或者尝试将直接的“for”方法和“range”方法作为数组的值传递。它们都不起作用,要么返回错误,要么在选择框上不显示任何内容。我想知道是否有解决此问题的好方法,或者是否因为特定函数需要一个带有值和标签的简单数组而无法解决。

【问题讨论】:

  • 您使用的开源框架是什么?如果您编辑您的问题以添加它,并添加它的标签,那么使用它的人可能会回答。在我们自己开发的系统中,我们使用模板文件,我们可以将“%%-fragment-name-%%”替换为我们想要的任何 HTML 块。
  • 它是Oxwall,但我认为它对堆栈的支持相对较小。它使用 SMARTY 对变量进行模板化,我想我可以应用某种虚拟值,然后将实际方法应用于模板。

标签: php oxwall


【解决方案1】:

也许我在这里遗漏了一些东西,但我会做的:

$minAgeOptions = array();
for ($i = 1; $i <= 100; $i++){
    $minAgeOptions[$i] = $i;
}

$tminage->setOptions($minAgeOptions);

【讨论】:

  • 没有循环会是这样的:array_combine(range(1,100), range(1,100))
  • 谢谢。所以我最初是在某个地方,但我没有正确利用我的变量。
猜你喜欢
  • 2016-01-23
  • 1970-01-01
  • 1970-01-01
  • 2019-05-01
  • 2015-06-06
  • 2011-07-12
  • 1970-01-01
  • 2021-04-10
  • 2011-09-08
相关资源
最近更新 更多