私は、JavaScript と連携してダウンロードになる複合ファイル名を作成する PHP 出力フォームを使用しています。
この投稿も実装しました:
相互作用して 1 つの結果を生成する 3 つの選択ボックス - 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';
}
}
私がやろうとしているのは、クラスが選択されたときに、次の選択のためにとクラスを選択しs
たいのですが、クラスが選択されたときに、クラスのみを選択したいということです。OS、アーキテクチャの選択は、すべての選択に対応したいため、これらのクラスは同じです。l
c
q
c