【问题标题】:Unable to get value from Dynamic Drop Down List in PHP - Undefined index Error无法从 PHP 中的动态下拉列表中获取值 - 未定义索引错误
【发布时间】:2013-07-27 13:33:03
【问题描述】:

我创建了以下程序,用户可以在其中更新列表中的任何特定记录。当用户单击更新按钮时,会打开一个表单,其中包含名称字段、图像字段和用于选择类别的下拉列表。问题是我收到 Notice: Undefined index: category 错误消息。我试图回应它,但它仍然给我同样的错误信息。我无法理解为什么它没有从下拉列表中获取类别的值。请检查并指导我。

<?php
    include 'connect.php';

    $sub_category_id= $_GET['sub_category_id'];

    $query=         "Select * from sub_categories where sub_category_id =$sub_category_id";

    $query_run=     mysql_query($query);    

    $fetch=         mysql_fetch_array($query_run);

    $name=          $fetch['sub_category_name'];


    $image_query=               "select * from sub_categories_images where sub_category_id=$sub_category_id";

    $image_query_run=           mysql_query($image_query);

    $image_query_fetch=         mysql_fetch_array($image_query_run);

    $image=                     $image_query_fetch['location'];



    echo "
            <form action='update_sub_category.php?sub_category_id=$sub_category_id' 
            method='POST' enctype='multipart/form-data'>
                <table border=1>
                <tr>
                <td>
                    Sub-Category Name: </td><td>    <input type='text' name='sub_category_name' value=$name ></td></tr>
                <tr>
                <td>
                    Image1:</td><td> <input type='file' name= 'file' value=$image></td></tr> 



            </form> </table>    ";




        /*--------------
        Drop Down List
        ---------------*/

            echo "<select name='category'>";


                $select_query=          'Select * from category';
                $select_query_run =     mysql_query($select_query);


            while   ($select_query_array=   mysql_fetch_array($select_query_run) )
            {

                    echo "<option value='".$select_query_array['category_id']."' >"
                    .htmlspecialchars($select_query_array["name"]).     
                    "</option>";                    

                }
                echo "</br>";

         $selectTag= "</br><input type='submit' value='Update Product'  /></select>";

         echo "</div></div>";

         echo $selectTag;

         echo "</form>";

        /*--------------
        Drop Down List
        ---------------*/




        $category_tag=  $_POST['category'];

        /*  
            $query_sub_category=        "update sub_categories set sub_category_name= $name, 
                                         category_id= $category where sub_category_id=$sub_category_id  ";
            */

?>

【问题讨论】:

  • 1) 首先,请使用mysqli_* 而不是mysql_*。 2)在类别查询中使用“Where”或“Order by category_id”。希望这会解决它。 3) 此外,表单标签未正确关闭。它应该在提交按钮后关闭。
  • 在 $selectTag 中,为什么你有表单的结束标签()?
  • mysqli 可能是一个很好的解决方案,但我注意到它不适用于旧版本的 PHP
  • $sub_category_id= $_GET['sub_category_id'];但我在您的表单中找不到任何名为 sub_category_id 的元素
  • 我正在从另一个页面获取 $_GET['sub_category_id'] 的值并正确获取它。我已经更新了我的代码。请检查一下。 @AhmedHabib BlacSea

标签: php html mysql html-select


【解决方案1】:

您似乎在选择类别之前关闭表单。所以类别下拉列表不在表单中,因此不在 $_POST 数组中

在 $selectTag 中,您正在关闭表单,但我没有看到您从哪里开始的......

【讨论】:

  • 我已经更新了我的代码,但它仍然给我一个错误信息
【解决方案2】:

您结束了表单并且没有开始它..所以这就是为什么没有传输值。要克服这个问题,您需要在我在代码中添加此注释 //// XXXXXXX //// 的位置添加表单的开头

 <?php
            include 'connect.php';

            $sub_category_id= $_GET['sub_category_id'];

            $query=         "Select * from sub_categories where sub_category_id =$sub_category_id";

            $query_run=     mysql_query($query);    

            $fetch=         mysql_fetch_array($query_run);

            $name=              $fetch['sub_category_name'];


            $image_query=               "select * from sub_categories_images where sub_category_id=$sub_category_id";

            $image_query_run=           mysql_query($image_query);

            $image_query_fetch=     mysql_fetch_array($image_query_run);

            $image=                 $image_query_fetch['location'];



            echo "
                    <form action='update_sub_category.php?sub_category_id=$sub_category_id' 
                    method='POST' enctype='multipart/form-data'>
                        <table border=1>
                        <tr>
                        <td>
                            Sub-Category Name: </td><td>    <input type='text' name='sub_category_name' value=$name ></td></tr>
                        <tr>
                        <td>
                            Image1:</td><td> <input type='file' name= 'file' value=$image></td></tr> 



                    </form> </table>    ";




                /*--------------
                Drop Down List
                ---------------*/
            //// XXXXXXX ////
                    echo "<select name='category'>";


                        $select_query=          'Select * from category';
                        $select_query_run =     mysql_query($select_query);


                    while   ($select_query_array=   mysql_fetch_array($select_query_run) )
                    {

                            echo "<option value='".$select_query_array['category_id']."' >"
                            .htmlspecialchars($select_query_array["name"]).     
                            "</option>";                    

                        }
                        echo "</br>";

                 $selectTag= "</br><input type='submit' value='Update Product'  /></select></form>";

                 echo "</div></div>";

                 echo $selectTag;

                /*--------------
                Drop Down List
                ---------------*/




             $category= $_POST['category'];

                /*  
                    $query_sub_category=        "update sub_categories set sub_category_name= $name, 
                                                 category_id= $category where sub_category_id=$sub_category_id  ";
                    */

        ?>

【讨论】:

  • 我自己没有开始填写表格,因为我不知道您想在哪里提交表格。
猜你喜欢
  • 1970-01-01
  • 2015-03-02
  • 2018-01-25
  • 2019-08-24
  • 1970-01-01
  • 1970-01-01
  • 2020-01-07
  • 1970-01-01
  • 2022-11-29
相关资源
最近更新 更多