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

上述代码调用数组信息:

function createOption(ddl, text, value) {
        var opt = document.createElement('option');
        opt.value = value;
        opt.text = text;
        ddl.options.add(opt);
    }

上面的代码创建了一个下拉列表,如下所示:

<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>

ETC

我还需要让它添加一些 PHP 脚本,这可能吗?它看起来像这样(注意:==1 '1' 需要是一个变量,它可以是顶部 Javascript 代码中的 '[i] 吗?:

<option value="1" <?php if ($results['q14']==1) echo "selected";?>>1</option>
<option value="2" <?php if ($results['q14']==2) echo "selected";?>>2</option>
<option value="3" <?php if ($results['q14']==3) echo "selected";?>>3</option>
4

1 回答 1

1

因为在同步连接中,JavaScript 是在 PHP 已经被解析后解释的,所以您可以将 php 代码添加到 JavaScript 本身,或者向 php 脚本创建一个异步 AJAX 请求,以检查应该选择哪个选项。对于第一个选择:

function createOption(ddl, text, value, selected) {
    var opt = document.createElement('option');
    opt.value = value;
    opt.text = text;
    opt.selected = selected;
    ddl.options.add(opt);
}

并在通话中

createOption(ddl, "some option", "someopt", <?=($results['q14']==1)?'true':'false'?>);

请注意,此 JavaScript 必须由 PHP 解析,因此要么将其包含在 *.php 文件中,要么将 *.js 添加到 webservers 处理程序映射中。

于 2012-08-16T08:51:37.483 回答