【问题标题】:Javascript Drop Down boxes adding PHP code添加 PHP 代码的 Javascript 下拉框
【发布时间】:2012-08-15 04:14:06
【问题描述】:
var abc = new Array('Perth','Auckland');

case '1':
    document.getElementById(q15).options.length = 0;
    for (i = 0; i < abc.length; i++) {
        createOption(document.getElementById(q15), abc[i], abc.[i]);
    }
break;

var opt = document.createElement('option');
    opt.value = value;
    opt.text = text;
ddl.options.add(opt);

以上代码输出如下:

<option value="1">Perth</option>
<option value="2">Auckland</option>

但是,我需要添加一些 PHP 来计算页面加载时是否选择了该选项,因此输出应如下所示:

<option value="1" <?php if ($results['abc']==1) echo "selected";?>>Perth</option>
<option value="2" <?php if ($results['abc']==2) echo "selected";?>>Auckland</option>

但是,我正在努力使用 Javascript 中的 Selected 选项来添加此选项并将其添加到下拉列表中。

任何帮助表示赞赏。

谢谢,

H.

【问题讨论】:

  • 你是否提供了所有的javascript代码,因为我试图阅读它,但只有一点点有意义......:P
  • 你所说的“挣扎”是什么意思?挑战是什么?
  • 挑战在于,当页面加载时,如果已经选择了下拉选项(保存在数据库中),那么当页面加载时,该选项会自动选择。当我手动在下拉菜单中编码时它工作正常,但是当我使用 Javascript 填充和创建下拉菜单时我需要这样做。

标签: php javascript select drop-down-menu options


【解决方案1】:

两件事,

首先,

您可以通过 domelement.setAttribute("selected","selected"); 使用 JavaScript 设置 selected 属性

我认为这就是您最初的问题所在。

第二,

您不能使用 javascript 添加 PHP 代码,因为 PHP 在您的浏览器获取代码之前在服务器上运行。

我会使用 PHP 将 $results 变量存储到 javascript 变量中,并使用它来设置 selected

var results = ["<?php echo implode ('","', $results); ?>"]   /*Get the results array from PHP to javascript.*/


var abc = new Array('Perth','Auckland');

case '1':
    document.getElementById(q15).options.length = 0;
    for (i = 0; i < abc.length; i++) {
        createOption(document.getElementById(q15), abc[i], abc.[i]);
    }
break;

var opt = document.createElement('option');
    opt.value = value;
    opt.text = text;
ddl.options.add(opt);
/*add the "selected" attribute to options that results['abc'] == <number>*/

【讨论】:

  • 谢谢 - 认为可能是这样。
  • 谢谢凯文 - 很快就会有戏。
  • 会做的 - 这会是一段时间,但保持页面打开以确保我做。
  • @Kevin_Johnson - 好的,刚开始玩...结果爆裂时遇到问题 - 结果的值显示"&lt;?php echo implode ('","', $results); ?&gt;"
  • 你是用 PHP 解释这个吗?页面的其余部分使用什么服务器语言?
【解决方案2】:

$results 来自哪里?如果它是您在页面创建期间在 PHP 逻辑中操作的东西,那么我假设您专门询问为什么选择项没有被正确选择?

<option value="1" <?php if ($results['abc']==1) echo "selected";?>>Perth</option>

实际上应该将 selected 属性设置为“selected”值(而不是单独打印选定的单词)。所以,应该是:

<option value="1" <?php if ($results['abc']==1) echo "selected=\"selected\"";?>>Perth</option>

【讨论】:

  • 我认为@Homer_J 正在尝试使用 JavaScript 创建属性。
  • 纠正 Kevin,通过 Javascript。
  • 对各位误会深表歉意。我是新来的,有什么礼仪吗? (即,完全删除我的答案?)
猜你喜欢
  • 2017-08-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-03-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多