使用带有选择列表的$ _POST时未定义的索引

时间:2013-12-07 03:58:52

标签: php html

有谁能告诉我为什么我有“未定义的索引”警告? 我没有任何线索..

    <?php
    function li(){
        if(isset($_POST['send'])){
            $a=$_POST['encrypt'];

        }echo $a;
    }
?>

<select name="encrypt" size="3">
    <option value="1">1</option>
    <option value="2">2</option>
    <option value="3">3</option>
</select>

编辑:这是我定义'发送'的地方

<input type="submit" value="Send" name="send">

以下是整个代码:

<html>
    <head>

    </head>

    <body>
    </br>

<form method="post">
Text</br> <textarea name="text" rows="5" columns=40></textarea></br>
</br></br>Encrypted</br> <textarea name="en" rows="5" columns="40"><?php li(); ?></textarea></br>
<input type="submit" value="Send" name="send">
</form> 
<?php
    function li(){
        if(isset($_POST['send'])){
            $a=$_POST['encrypt'];

        }echo $a;
    }
?>

<select name="encrypt" size="3">
    <option value="1">1</option>
    <option value="2">2</option>
    <option value="3">3</option>
</select>


    </body>
</html>

我已将select放入表单部分,但仍然无效。

<html>
    <head>

    </head>

    <body>
    </br>

<form method="post" action="index.php">
Text</br> <textarea name="text" rows="5" columns=40></textarea></br>
</br></br>Encrypted</br> <textarea name="en" rows="5" columns="40"><?php li(); ?></textarea></br>
<input type="submit" value="Send" name="send">

<select name="encrypt" size="3">
    <option value="1">1</option>
    <option value="2">2</option>
    <option value="3">3</option>
</select>

</form> 

<?php
    function li(){
        if(isset($_POST['send'])){
            $a=$_POST['encrypt'];

        }echo $a;
    }

    print_r($_POST);
?>



    </body>
</html>

最后编辑: 在最后一次更改后一切都很好......我只需要从列表中选择选项。我需要保护它免受此错误的影响:&gt;对不起,我的不好

3 个答案:

答案 0 :(得分:1)

您的SELECT标签位于FORM外面..将其置于

之内
   <form method="post">
    Text</br> <textarea name="text" rows="5" columns=40></textarea></br>
    </br></br>Encrypted</br> <textarea name="en" rows="5" columns="40"><?php li(); ?></textarea></br>
    <select name="encrypt" size="3">
    <option value="1">1</option>
    <option value="2">2</option>
    <option value="3">3</option>
   </select>
<input type="submit" value="Send" name="send">
    </form> 

答案 1 :(得分:0)

请在encrypt代码中保留<form>的下拉列表。

<form method="post">
Text</br> <textarea name="text" rows="5" columns=40></textarea></br>
</br></br>Encrypted</br> <textarea name="en" rows="5" columns="40"><?php li(); ?></textarea></br>
<select name="encrypt" size="3">
    <option value="1">1</option>
    <option value="2">2</option>
    <option value="3">3</option>
</select>

<input type="submit" value="Send" name="send">
</form> 
<?php
    function li(){
        $a = '';
        if(isset($_POST['send']) && isset($_POST['encrypt'])){
            $a=$_POST['encrypt'];

        }echo $a;
    }
?>
    </body>
</html>

同时检查功能中$_POST['encrypt']的条件。

答案 2 :(得分:0)

这应该可以。你有三件事情可供选择,没有默认值可以选择,因此你得到了这个错误。 这应该是你的错误:“PHP注意:未定义索引:加密...”

<html>
<head>

</head>

<body>
</br>

<form method="post" action="">
Text</br> <textarea name="text" rows="5" columns=40></textarea></br>
</br></br>Encrypted</br> <textarea name="en" rows="5" columns="40"><?php li();       ?></textarea></br>
<input type="submit" value="Send" name="send">

<select name="encrypt" size="3">
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
</select>

</form> 
</body>
</html>

<?php
  function li()
{
    if(isset($_POST['send']))
    {
        if(isset($_POST['encrypt']))
        {

        $a = $_POST['encrypt'];
        }
        else { $a = 1;}

    }
    echo $a;
}

print_r($_POST);
?>