2016-01-08 95 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>

相关问题