2011-10-27 1 views
0

드롭 다운 목록 선택을 기반으로 조건문을 만드는 방법은 무엇입니까?PHP - 드롭 다운 선택 = 무언가

우리는 항목이 드롭 다운 목록이 있다고 가정하자 :

나는 Other 드롭 다운에서 현재 선택된 항목이있는 경우, 내가 If Other, Please Specify을 알리는 개행 문자를 반향 할 조건문을 만들
Alpha 
Bravo 
Charlie 
Other 

. 그러나 현재 선택된 항목이 아닌 경우 해당 문자열을 채우고 싶지 않습니다. 코멘트 말했듯이

<script> 
    $('#conditions').change(function(){ 
     if($(this).val() == "Other"){ 
      $('#specify').show(); 
     }else{ 
      $('#specify').hide(); 
     } 
    }); 
</script> 
+1

과 같은 자바 스크립트로 수행 할 수 있습니다. 기타 옵션을 선택했는지에 따라 숨기거나 표시 할 수 있습니다. –

+1

클라이언트 쪽에서이 작업을 수행한다고 가정합니다. 그렇다면 Javascript가 필요합니다. – Andri

+0

사용자가이 드롭 다운이있는 양식을 제출하면 PHP로도 수행 할 수 있습니다. – evilone

답변

3

, 당신은 자바 스크립트에서이 작업을 수행해야합니다. 다음 함수가이를 수행해야합니다.

이 포함 자바 스크립트 페이지의 <script> 요소 내부, 또는 자바 스크립트 파일 내 중 하나

드롭 다운이 변경 될 때
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에 액세스 할 수 있다면 div의 내용을 조정하는 것 이상의 작업을 통해 checkSelect()을 더욱 강력하게 만들 수 있습니다 (가능한 한 sily는 CSS뿐만 아니라 대 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 클래스를 기반으로 항목을 변경할 수 있습니다. 당신이 만든 어떤 변화 조정할 수 있습니다, 분명히 ...

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"); 
    } 
} 

을이 모든 경고 된 div를 변경하려고합니다, 그래서 당신은 당 필드 의견을 찾고 있다면,이 갈 방법이 아니다 어느 쪽의 조건이라도 거기에서. 표시된 텍스트를 조정할 이유가 전혀 없으면 .html() 부분을 완전히 삭제해야합니다. 마찬가지로 색상이 빨간색 일 때만이 div를 표시하는 경우 해당 조정을 취소하고 스타일을 원하는대로 하드 코드하면됩니다. 관련 요소에 대한 다른 CSS 속성을 변경할 수 있습니다. .css()

+0

@ mechaflash 도움이되는 무엇입니까 ?? –

3

클라이언트 측 jQuery를에

<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>'; 
} 
?> 

PHP

에서

+0

내가 텍스트 필드를 채우고 다른 클래스의 html 클래스를 제공한다면, 자바 스크립트를 사용하여 스타일을 숨김/숨김 조건으로 변경하는 방법에 대한 편집을 만들 수 있습니까? 드롭 다운 필드가 OTHER로 선택 되었습니까? – Mechaflash

+0

@Mechaflash, 곧바로 Javascript에서 통증이 될 것입니다. jQuery에 액세스 할 수 있습니까? –

+0

더 자세한 내용과 세부 사항이 포함 된 새로운 질문을 만들었습니다. http : //stackoverflow.com/questions/7931002/php-webcalendar-hide-an-html-class-based-on-a-dropdown-list-selection – Mechaflash