Javascript下拉框添加PHP代码

时间:2012-08-19 14:43:18

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

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选项添加此选项并将其添加到下拉列表中。

任何帮助表示感谢。

谢谢,

小时。

2 个答案:

答案 0 :(得分:1)

两件事,

首先,

您可以通过selected

使用JavaScript设置domelement.setAttribute("selected","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>*/

答案 1 :(得分:0)

$results来自哪里?如果你在页面创建期间在PHP逻辑中操作它,那么我假设你特别询问为什么没有正确选择选择项?

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

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

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