【问题标题】:HTML/PHP set value of option in select where I filled select from arrayHTML/PHP 设置选项的值在我从数组中填充的地方选择
【发布时间】:2018-03-09 19:49:58
【问题描述】:

我目前正在尝试从 php 变量的选择框中设置选项的值。

就像登录屏幕会在您输入错误密码时保存您的用户名一样,如果提交出现问题,我想将选项的值保存在滚动框中。

现在问题出现了,因为我正在使用带有数组的脚本来填充选择框中的选项。 (PS有很多选择,但例如减少)

<script>
    var yrkeValg =
        [
            {
                "text"  : "Police",
                "value" : "police"
            },
            {
                "text"     : "Teacher",
                "value"    : "teacher"
            }
        ];

    var selectBox = document.getElementById('yrke');

    for(var i = 0, l = yrkeValg.length; i < l; i++)
    {
        var option = yrkeValg[i];
        selectBox.options.add(new Option(option.text, option.value, option.selected));
    }

</script>

我试图从我的 php 类函数“hentYrke()”中设置值,但它被忽略了。已检查,功能值正确。 例如,如何将教师设置为 php 变量的值?

<select id="yrke" name="yrke" value="<?php $nyDeltaker->hentYrke() ?>"></select>

【问题讨论】:

  • 你的线路丢失了echo,试试这个:&lt;?php echo $nyDeltaker-&gt;hentYrke() ?&gt;,在这里阅读更多关于回声w3schools.com/php/php_echo_print.asp
  • 页面加载时元素中不存在选项,这是您的问题。
  • 您的 Javascript 是否与 HTML 位于同一文件中?

标签: javascript php html select


【解决方案1】:

由于在页面加载时页面上不存在 select 元素的 options,因此您需要再添加一行以在它们之后“重新设置”select 元素的值已添加。

<script>
    var yrkeValg =
        [
            {
                "text"  : "Police",
                "value" : "police"
            },
            {
                "text"     : "Teacher",
                "value"    : "teacher"
            }
        ];

    var selectBox = document.getElementById('yrke');

    for(var i = 0, l = yrkeValg.length; i < l; i++)
    {
        var option = yrkeValg[i];
        selectBox.options.add(new Option(option.text, option.value, option.selected));
    }

    // this is the line to add
    selectBox.value = document.getElementById('yrke').getAttribute('value');

</script>

Demo using a hardcoded value of 'teacher'

请注意,根据您是否在 hentYrek() 函数中实际使用 echoing,您可能需要按照 AamirR 的建议进行操作。

【讨论】:

  • 是的,虽然这次我忘记添加“echo”,但我尝试了其他一些时间。你的答案很完美。正在尝试类似的东西: selectBox.value = "hentYrke() ?>" 但是当我还在学习 php 和 html 时,我只走了这么远,不太确定为什么它不起作用。非常感谢您的帮助!
猜你喜欢
  • 1970-01-01
  • 2017-12-12
  • 2020-06-24
  • 1970-01-01
  • 2018-05-14
  • 2012-01-17
  • 1970-01-01
  • 1970-01-01
  • 2023-01-25
相关资源
最近更新 更多