2016-01-08 96 views
2

我想在PHP中做一些非常簡單的事情,但不斷收到錯誤消息。從本質上講,當有人選擇「貓」時,我想要「苗」出現。如何顯示下拉選擇文本

我的想法是:

<select name="demo"> 
    <option value="Dog">Dog</option> 
    <option value="Cat">Cat</option> 
    <option value="Fish">Fish</option> 
</select> 

<?php if ($_POST['demo'] == 'Cat') { echo 'Miaow'; } ?> 

然而,在PHPFiddle,

我得到 'E_NOTICE:類型8 - 未定義指數...'

儘快代碼運行。我缺少一些基本的東西嗎?謝謝!

+1

[PHP: 「注意:未定義變量」 和 「通知:未定義的索引」]的可能的複製(http://stackoverflow.com/questions/4261133/php-notice-undefined-variable-and-notice-undefined-index) –

+0

是否在表單中選擇POST方式? –

+0

絕對不是這篇文章的重複:我想知道如何使這項工作,而不是簡單地刪除E_notice謝謝... – JohnG

回答

1

您的表單可能會通過$ _GET而不是$ _POST傳遞數據。 您是否指定了方法?

<form method="post" action="index.php"> 
    <select name="demo"> 
     <option value="Dog">Dog</option> 
     <option value="Cat">Cat</option> 
     <option value="Fish">Fish</option> 
    </select> 
    <input type="submit" value="Submit"> 
</form> 

可以var_dump($_POST);var_dump($_GET);,看看這些變量包含你的PHP文件。

或者你也可以做到這一點在JavaScript這樣的:

function animal(value) { 
 
    if(value == "Cat") { 
 
    document.getElementById("myAnimal").innerHTML = "Miaouw"; 
 
    } else { 
 
    document.getElementById("myAnimal").innerHTML = "Rooooah"; 
 
    } 
 
}
<form action="#"> 
 
    <select name="demo" onchange="animal(this.value)"> 
 
     <option value="Dog">Dog</option> 
 
     <option value="Cat">Cat</option> 
 
     <option value="Fish">Fish</option> 
 
    </select> 
 
</form> 
 
<span id="myAnimal"></span>

+0

我做過了 - 我在POST和GET之間交替使用...甚至有可能使用PHP來做到這一點,使得「Miaow」在選擇時自動出現,而不必提交表單? – JohnG

+0

如果您想在不提交表單的情況下執行此操作,則應通過簡單的JavaScript代碼或通過javascript發送AJAX請求。 –

+0

請參閱我在純javascript中的編輯 –

0

也許這將幫助我寫一些塊,據我瞭解...

<form action="#" method="post"> 
    <select name="demo"> 
      <option value="Dog">Dog</option> 
      <option value="Cat">Cat</option> 
      <option value="Fish">Fish</option> 
    </select> 
    <input type="submit" name="sub" /> 
</form> 
<?php 
    if(isset($_POST['sub'])){ 
     if($_POST['demo'] == "cat"){ 
      echo "Miao"; 
     } 
    } 
?> 
+0

謝謝你Ryhan--我認爲這會奏效! – JohnG

+0

加上減號的人,請你解釋一下我想要的嗎?也許你的解釋可以幫助我學習新東西。謝謝。 – RyhanRakib

+0

實際上,恐怕它不起作用:「Miaow」出現在所有選項中...... – JohnG

0

它甚至有可能使用PHP來做到這一點,使得「Miaow」在select時自動出現,而不是n必須提交表單嗎?

您正在尋找JavaScript代碼,而不是PHP。這裏是一個jQuery例如:

$(document).on('change', '.animals', function(){ 
 
    $('.noise-target').html($('option:selected', this).data('noise')); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<select class="animals"> 
 
    <option>Select</option> 
 
    <option data-noise="Woof">Dog</option> 
 
    <option data-noise="Meow">Cat</option> 
 
</select> 
 
<div class="noise-target"></div>

相關問題