2014-11-24 30 views
-1

我有後續的問題球員,我有一個ckeckbox創建一個簡單的頁面,我希望在複選框被選中一個(列表)出現,如果沒有選中列表2出現,不使用透過PHP如果選中複選框<select>列表中出現

<body> 
    <input type="checkbox1" name="ckeck"> 
    <?php if checkbox1 is ckecked { ?> 
    <select name="list" size="1"> 
     <option value="0">0</option> 
     <option value="1">1</option> 
    </select> 
    <?php } else { ?> 
    <select name="list2" size="1"> 
     <option value="12">12</option> 
     <option value="25">25</option> 
    </select> 
    <?php } ?> 
</body> 

我希望代碼幫助更多....

+0

請花時間正確設置代碼的格式。這讓其他人更快地閱讀和幫助你。 – 2014-11-24 15:38:29

+0

你正在嘗試使用PHP是不可能的。尋找javascipt解決方案。 – Aris 2014-11-24 15:46:35

+0

@Aris,沒有什麼是不可能的,我們可以在複選框點擊:) – 2014-11-24 15:49:35

回答

1

PHP無法訪問DOM;你需要JavaScript。如果您必須使用PHP來對付複選框,那麼您將需要使用AJAX進行研究。基本上,您將使用JavaScript(理想的jQuery)來響應即時複選框事件,該事件將使用AJAX與您的PHP腳本進行通信。您的PHP腳本將返回某種數據。數據可以是包含列表數據的JSON(我推薦這個),可以是要執行的原始JavaScript代碼,或者它可以簡單地返回一個布爾值來確定列表是否顯示。這些只是一些想法。

如果不是安全問題,您可以將所有PHP邏輯移動到客戶端,並在JavaScript中執行的所有操作。您可能會擁有更好的用戶體驗,並且可能會減少服務器負擔。

TL;博士:使用JS來代替。否則使用JS處理複選框事件,針對PHP腳本的AJAX,PHP生成數據,JS解釋結果。

2

如果你想在列表中顯示,而無需使用提交(這意味着它出現時,點擊複選框),你需要使用的語言Client-Side scripting如Javascript,而不是PHP。 PHP只能控制發送到客戶端的輸出,一旦它在客戶端上顯示在瀏覽器中,您需要使用客戶端語言進行更改。

我強烈建議你使用一個庫這樣做,因爲這會佔用大量的東西,否則你將需要手工做的照顧。如果你想使用the very popular and widespread JQuery library你的代碼可能看起來像

<html > 
 
    <body> 
 
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
    <script> 
 
    $(function() { 
 
\t $("#list").hide(); 
 
\t $("#ckeck").change(function() { 
 
\t \t if($(this).is(":checked")) { 
 
\t \t \t $("#list").show(); 
 
\t \t \t $("#list2").hide(); 
 
\t \t } 
 
\t \t else 
 
\t \t { 
 
\t \t \t $("#list").hide(); 
 
\t \t \t $("#list2").show(); 
 
\t \t } 
 
\t }); 
 
    }); 
 
    </script> 
 
    <input type="checkbox" name="ckeck" id="ckeck"> 
 
    <select name="list" id="list" size="1"> 
 
\t <option value="0">0</option> 
 
\t <option value="1">1</option> 
 
    </select> 
 
    <select name="list2" id="list2" size="1"> 
 
\t <option value="12">12</option> 
 
\t <option value="25">25</option> 
 
    </select> 
 
</body> 
 
</html>

+0

http://en.wikipedia.org/wiki/Client-side_scripting#List_of_Client-Side_Scripting_Languages – putvande 2014-11-24 15:51:40

+0

如果使用JavaScript,我可以將結果發送給我的文件,並使用PHP得到的結果,並使用它們? – TLSK 2014-11-24 15:52:33

+0

@TLSK,不,你使用JavaScript,直接DOM調試 – 2014-11-24 15:53:59

1

嘗試使用.toogle(),如:

$('#checkbox1').change(function() { 
 
    $("select[name='list']").toggle(this.checked); 
 
    $("select[name='list2']").toggle(!this.checked); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<input type="checkbox" name="check" id="checkbox1"> 
 

 
<select name="list" size="1" style="display:none"> 
 
    <option value="0">0</option> 
 
    <option value="1">1</option> 
 
</select> 
 
<select name="list2" size="1"> 
 
    <option value="12">12</option> 
 
    <option value="25">25</option> 
 
</select>

看到它在這裏的行動:http://jsfiddle.net/mk02qmjh/1/

相關問題