如果选择了选项,请在php中执行某些操作

时间:2016-10-18 08:05:19

标签: php

我有这段代码:

<html>

<head>    
</head>

<body>
    <select>    
        <?php 

            $colors = array("red", "green", "blue", "yellow"); 
            foreach ($colors as $value) {
                echo "<option>$value</option>";
            }

            if (in_array("blue",$value)) {
                echo "Blue is your color";         
            } else {
                echo "blue is not your color get out of here";
            }

        ?>
    </select>
</body>

</html>

基本上有一个变量,它是一个包含不同颜色的数组。 我将该变量放在select中的for循环中,以便人们可以选择选项。当人们选择蓝色的数组属性来回应某些东西时,我正试图实现。

我的尝试:

 if (in_array("blue",$value)) {
                echo "Blue is your color";         
            } else {
                echo "blue is not your color get out of here";
            }

在来到这里之前我做了一些研究,但没有发现或者我真的不知道要找什么,但这是我的尝试,我试过了!

6 个答案:

答案 0 :(得分:3)

如果你想在客户端获得价值而不是在这里使用jQuery或Javascript,或者如果你想使用服务器端,那么你必须在这里使用<form>

以下是jQuery的基本示例,您可以根据需要进行修改,我在结果警告框中显示,您可以在任何需要的地方显示:

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script> 
<select name="select" id="select">    
<option value="">Select</option>
<?php 
$colors = array("red", "green", "blue", "yellow"); 
foreach ($colors as $value) {
?>
  <option value="<?=$value?>"><?=$value?></option>
<?php
}
?>
</select>

<强> jQuery的:

<script type="text/javascript">
$(document).ready(function(){
  $("#select").change(function(){
    selectVal = $(this).val();
    myarray = ["red", "green", "blue", "yellow"];
    if($.inArray(selectVal, myarray) !== -1){
      alert(selectVal+' is your color');
    }
    else{
      alert(selectVal+' is not your color get out of here');
    }
  });
});
</script>

请确保您已将jquery文件包含在代码<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>

答案 1 :(得分:1)

你应该写

 <html>

    <head>    
    </head>

    <body>
<?php 
$colors = array("red", "green", "blue", "yellow"); 
if(isset($_GET)&&$_GET["colors"]!=""){
if (in_array($_GET["colors"],$colors)) {
                    echo "$_GET["colors"] is your color";         
                } else {
                    echo "blue is not your color get out of here";
                }
 }
?>
<form method="get">
        <select name="colors">    
            <?php    

                foreach ($colors as $value) {
                    echo "<option value='".$value."'>$value</option>";
                }
            ?>
        </select>
<input type="submit"/>
</form>
    </body>

    </html>

<强> in_array

(PHP 4,PHP 5,PHP 7) in_array - 检查数组中是否存在值

<强>描述

bool in_array(混合$ needle,数组$ haystack [,bool $ strict = FALSE]) 除非设置严格,否则使用松散比较搜索干草堆的针。

<强>参数

针 搜索到的值。

注意: 如果needle是一个字符串,则以区分大小写的方式进行比较。 草垛 数组。

严格 如果第三个参数strict设置为TRUE,那么in_array()函数也会检查大海捞针的类型。

返回值

如果在数组中找到了针,则返回TRUE,否则返回FALSE。

参考http://php.net/manual/en/function.in-array.php

答案 2 :(得分:1)

如果您使用javascript以简单的方式执行此操作。在此之前,您需要使用form标记。使用onchange="myfunction(this.value)"方法从选择框中获取当前选定的值。

    <head>    
    <script>
    function myfunction(x)
    {
        alert(x);
    }
    </script>
    </head>

    <body>
    <form action="" method="post">
        <select id="myvalue" onchange="myfunction(this.value)">    
            <?php 

                $colors = array("red", "green", "blue", "yellow"); 
                foreach ($colors as $value) {
                    echo "<option>$value</option>";
                }

                if (in_array("blue",$value)) {
                    echo "Blue is your color";         
                } else {
                    echo "blue is not your color get out of here";
                }

            ?>
        </select>
        </form>
    </body>

    </html>

答案 3 :(得分:0)

PHP不处理用户事件。使用jQuery:

<body>
<script   src="https://code.jquery.com/jquery-3.1.1.min.js"   integrity="sha256-hVVnYaiADRTO2PzUGmuLJr8BLUSjGIZsDYGmIJLv2b8="   crossorigin="anonymous"></script>
<select id="select1">

    <?php 
    $colors = array("red", "green", "blue", "yellow"); 
    foreach ($colors as $value) {
        echo "<option value='$value'>$value</option>";
    }   
    ?>
</select>
<input type="text" id="selected">
<script>
    $('#select1').on('change', function() {
        $('#selected').val( this.value );
    });
</script>

答案 4 :(得分:0)

你需要javascript或jquery来实现你想要的。这是一个纯粹的javascript示例:

<强> HTML     

<head>    
</head>

<body>
    <select onchange="checkColor(this);">    
        <?php 

            $colors = array("red", "green", "blue", "yellow"); 
            foreach ($colors as $value) {
                echo "<option>$value</option>";
            }
        ?>
    </select>
</body>

</html>

<强>的Javascript

<script>
function checkColor(selectObj){
if (selectObj.selectedIndex == -1){
        selectedColor = '';
}
else {
    selectedColor = selectObj.options[selectObj.selectedIndex].text;
}

if(selectedColor == 'blue'){
    alert('Blue is your color');
}
else {
   alert("blue is not your color get out of here");
}
}
</script>

答案 5 :(得分:-1)

<select onChange="window.top.location='lan.php?lan='+this.value;">
  <option>----</option>
  <option value="en">English</option>
  <option value="tr">Turkce</option>
</select>