我該如何去創建基於下拉列表選擇的條件語句?PHP - 如果下拉選擇=東西
比方說我們有一個條目的下拉列表:
Alpha
Bravo
Charlie
Other
我想創造一個如果Other
是從下拉列表中當前選擇的條目,我想呼應換行符說明If Other, Please Specify
條件語句。但是,如果它不是當前選定的條目,我不希望該字符串填充。
我該如何去創建基於下拉列表選擇的條件語句?PHP - 如果下拉選擇=東西
比方說我們有一個條目的下拉列表:
Alpha
Bravo
Charlie
Other
我想創造一個如果Other
是從下拉列表中當前選擇的條目,我想呼應換行符說明If Other, Please Specify
條件語句。但是,如果它不是當前選定的條目,我不希望該字符串填充。
在PHP
<select id="conditions" name="conditions">
<option></option>
<?php
foreach($option in $optionList){
echo "<option value=$option ";
if($_REQUEST["conditions"] == $option){
echo 'selected="selected"';
}
echo " > $option </option>";
}
echo "</select>";
if($_REQUEST["conditions"] == "Other"){
echo '<div id="specify" style="display:block">If Other, Please Specify</div>';
}else{
echo '<div id="specify" style="display:hidden">If Other, Please Specify</div>';
}
?>
在jQuery中的客戶端
<script>
$('#conditions').change(function(){
if($(this).val() == "Other"){
$('#specify').show();
}else{
$('#specify').hide();
}
});
</script>
@mechaflash什麼幫助? –
正如評論所說,你需要做到這一點在JavaScript。以下功能應該做到這一點。
加入此JavaScript或者頁面的<script>
元素中,或者裏面你的JavaScript文件:
function checkSelect(selId, text, outputDiv) {
var sel = document.getElementById(selId);
var d = sel.options[sel.selectedIndex].text;
if (d == text) {
document.getElementById(outputDiv).innerHTML = "If Other, Please Specify";
} else {
document.getElementById(outputDiv).innerHTML = "";
}
}
然後調整你的HTML來運行該功能時,下拉被改變:
<select id='Sel1' onchange='check("Sel1", "Other", "DivReqDetails");'>
<option value='Alpha'>Alpha</option>
<option value='Bravo'>Bravo</option>
<option value='Charlie'>Charlie</option>
<option value='Other'>Other</option>
</select>
<div id='DivReqDetails'></div>
編輯:如果你有權訪問jQuery,你可以使checkSelect()
做更多的不僅僅是調整div的內容(因爲你可以ea sily調整CSS,例如display:hidden;
vs display:block;
以及顏色。這裏有一個例子,如果你碰巧有jQuery支持。
我還加入了一點改善,讓您發送所需的文本此功能(這樣你可以把它選中多個領域,並相應地顯示不同的文本):
function checkSelect(selId, text, outputDiv, outputText) {
if ($("#"+selId).text() == text) {
$("#"+outputDiv).html(outputText).css("display","block").css("color","red");
} else {
$("#"+outputDiv).html("").css("display","none").css("color","black");
}
}
或者,如果您可以在窗體的不同部分顯示其中幾個警告,您可以根據CSS類而不是單個項目更改內容。請注意,這是不會改變的所有警示div的,所以如果你正在尋找每場反饋,這是不是要走的路...
function checkSelect(selId, text, outputCssClass, outputText) {
if ($("#"+selId).text() == text) {
$("."+outputCssClass).html(outputText).css("display","block").css("color","red");
} else {
$("."+outputCssClass).html("").css("display","none").css("color","black");
}
}
很明顯,你可以調整是什麼樣的變化在那裏的任何條件。如果您從未有任何理由調整顯示的文字,則應完全放棄.html()
部分。同樣,如果您只在顏色爲紅色時才顯示此div,請放棄該調整並將其樣式硬編碼爲您想要的樣式。您可以通過使用類似的調用來更改任何其他css屬性相關的元素,通過使用類似的調用.css()
可以說,如果我要填充文本字段併爲其指定html類別「other」,您是否可以創建一個關於如何使用javascript來操作該類以將其樣式更改爲隱藏/可見條件的編輯下拉字段被選爲OTHER? – Mechaflash
@Mechaflash,這將是一個痛苦的直接的Javascript(即beit可行)。你有沒有訪問jQuery? –
我創建了一個具有更多細節和細節的新問題:http://stackoverflow.com/questions/7931002/php-webcalendar-hide-an-html-class-based-on-a-dropdown-list-selection – Mechaflash
這將用JavaScript來完成。您可以隱藏或顯示,具體取決於是否選擇了其他選項 –
我假設您想要在客戶端執行此操作。如果是這樣,你需要一些Javascript。 – Andri
如果用戶提交此下拉列表所在的表單,則也可以在PHP中完成。 – evilone