私は次のselect
ような2つのボックスを持っています:
<select id="one">
<option value="default">Select File</option>
<option value="path/to/file1">File One</option>
<option value="path/to/file2">File Two</option>
<option value="path/to/file3">File Three</option>
</select>
<select id="two">
<option value="default">Select File</option>
<option value="path/to/file4">File Four</option>
<option value="path/to/file5">File Five</option>
<option value="path/to/file6">File Six</option>
</select>
<p class="button_image">
<a onclick="download(document.getElementById("one").value)"></a>
</p>
これが私のdownload
機能です:
function download(file) {
if (file == 'default') return;
window.location = 'http://www.mysite.com/download/' + file;
}
これは 1 つのselect
ボックスでは問題なく機能しますが、同じボタン イメージの使用方法がわかりません。ああ、p.class=button_image
ホバー効果のあるボタンの背景画像があります。
これらのボックスを別々にしたい理由select
は、それぞれがファイルのグループ (32 ビットと 64 ビットなど) を表しているからです。そのため、ページのデザインに合わないため、組み合わせることができません。
を使用して PHP で if/else ブロックをいくつか試しましたgetElementById
が、行き詰まりました。これは私が試したもので、部分的にしか機能しないようです:
<?php
if ('document.getElementById(\"one\")' == 'one') {
echo "<a onclick='download(document.getElementById(\"one\").value)'></a>";
}
else if ('document.getElementById(\"two\")' == 'two') {
echo "<a onclick='download(document.getElementById(\"one\").value)'></a>";
}
?>
この場合、この問題を解決するために必ずしも PHP を使用する必要はないことに注意してください。サーバー側のプログラミングにPHPを使用しているため、これは私が試したオプションにすぎません。それらが機能する限り、私は任意の数のオプションに満足できます.
ありがとう。
** 編集 **
この設計には欠陥がある可能性があります。ただし、意図は、ボックス 1 のファイルをダウンロードするか、ボックス 2 のファイルをダウンロードすることです。1 つの選択が行われた場合は、もう 1 つの選択が行われる必要がdefault
あり、その逆も同様です。これは私が今取り組んでいるものです。
** 編集 **
私は最終的にドーソン・ラウドンの答えの一部に行き着き、次のようなバーマーのコメントに基づいて別の関数を作成しました:
// resets other select box when selected
function reset_index(id) {
document.getElementById(id).selectedIndex = 'default';
}