我與結合JavaScript的工作,以創建成爲一個下載的複合文件名的PHP輸出形式工作。級聯選擇與現有的多重選擇窗體
我已經實現了這個帖子,以及:所以現在
Three Select Boxes Interacting to Yield One Result - HTML, JavaScript or 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
類被選中,我想選擇下一個選擇的l
和c
類,但選擇了q
上課的時候,我只是想選擇的c
類。操作系統,架構選擇我想在那裏爲所有選擇,因此這些類是相同的。
這是很好的 - 我想我可以用這個工作...非常感謝你。我會回來的... – nicorellius
我試圖實現這一點,雖然看起來很合理,但我可以理解發生了什麼,在我的代碼中,它並未禁用選擇字段。獲取jQuery錯誤'語法錯誤,無法識別的表達式:[value = A + D_]'。事實證明,我實際使用的值與上述文章中的值不同。看起來jQuery不喜歡'A + D_'字符串。 – nicorellius
Errgh,我認爲是這樣的...... jQuery不喜歡'+'符號,因爲當我將它改爲AD時它工作...謝謝! – nicorellius