我正在使用与 JavaScript 结合使用的 PHP 输出表单来创建一个可以下载的复合文件名。
我也实施了这篇文章:
三个选择框交互产生一个结果 - HTML、JavaScript 或 jQuery
所以现在我有一个现有的多项选择表:
<select id="one">
<option value="default">Select Product</option>
<option class="s" value="1">product1</option>
<option class="q" value="2">product2</option>
<option class="q" value="3">product3</option>
</select>
<select id="two">
<option value="default">Select Version</option>
<option class="l" value="4">product4</option>
<option class="l" value="5">product5</option>
<option class="c" value="6">product6</option>
</select>
<select id="three">
<option value="default">Select OS</option>
<option class="o" value="7">product7</option>
<option class="o" value="8">product8</option>
<option class="o" value="9">product9</option>
</select>
<select id="three">
<option value="default">Select Architecture</option>
<option class="a" value="10">product10</option>
<option class="a" value="11">product11</option>
<option class="a" value="12">product12</option>
</select>
单击该按钮时,它会连接字符串并创建一个作为下载安装程序的 URL。这可以正常工作,并且在大多数情况下会产生一个有效的文件来下载。
但是有几个选项是无效的。我只是为这篇文章添加了上面的类,因为很明显它们在相应的组中。
现在,这里的问题是,我如何获得这种现有形式的级联影响?我使用的 PHP 和 JavaScript 是:
从 PHP 文件:
$output .= '<div><p class="download-button"><a id="viewer-dl"';
$output .= ' onclick="download_file(document.getElementById(';
$output .= "'" . $product_id . "'" . ').value, document.getElementById(';
$output .= "'" . $version_id . "'" . ').value, document.getElementById(';
$output .= "'" . $os_id . "'" . ').value, document.getElementById(';
$output .= "'" . $arch_id . "'" . ')"></a></p></div>';
从 JavaScript 文件:
$(function() {
$("#viewer-dl").click(function() {
download_viewer( $('#product_id').val(), $('#version_id').val(),
$('#os_id').val(), $('#arch_id').val());
});
});
function download_file(version_id, os_id, arch_id) {
if (product_id == 'default' && version_id == 'default' &&
os_id == 'default' && arch_id == 'default') {
return;
}
else if (product_id != 'default') {
window.location = 'mysite.com/download/Install_' +
product_id + '_' + version_id + '_' + arch_id + '.exe';
}
}
What I'm trying to do is when the s
class is selected, I want the the l
and c
classes selected for the next selection, but when the q
class is selected, I only want the c
class selected. 操作系统,架构选择我希望所有选择都在那里,因此这些类是相同的。