【问题标题】:Fetch the value of the labels and the selected options in Group Drop Down in PHP在 PHP 中的 Group Drop Down 中获取标签的值和选定的选项
【发布时间】:2018-12-05 05:44:41
【问题描述】:

我是 php 新手,我在 HTML 表单中有一个下拉组,提交表单后,我需要获取组的名称以及 PHP 中的选定选项。

<select name="assign_id">
    <optgroup label="Admins">
            <option value="1">John Smith</option>
            <option value="2">Jane Smith</option>
    </optgroup>
    <optgroup label="Editors">
            <option value="3">Brian Smith</option>
            <option value="4">Scott Smith</option>
    </optgroup>
    <optgroup label="Basic Users">
            <option value="3">Kevin Smith</option>
            <option value="4">Tanya Smith</option>
    </optgroup>
</select>

例如,在上面的一堆 I 代码中,我需要在提交表单后获取标签“Admins”以及选择的选项“John Smith”,并使用 PHP 将其保存在 MySql Table 中。

欢迎任何帮助。

【问题讨论】:

  • 我知道表单,我需要的是提交表单后的标签(或组名)和所选选项的值。正如我上面提到的,它是关于一个组下拉列表。

标签: php html


【解决方案1】:

这可能会帮助您在正在做的事情上取得进步!

$("#assign_id").change(function(){
    var el = document.getElementById('assign_id');
    var text = el.options[el.selectedIndex].innerHTML;
    
     var label = $(this.options[this.selectedIndex]).closest('optgroup').prop('label');
     alert(text);
     alert(label);
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<select name="assign_id" id="assign_id">
    <optgroup label="Admins">
            <option value="1">John Smith</option>
            <option value="2">Jane Smith</option>
    </optgroup>
    <optgroup label="Editors">
            <option value="3">Brian Smith</option>
            <option value="4">Scott Smith</option>
    </optgroup>
    <optgroup label="Basic Users">
            <option value="3">Kevin Smith</option>
            <option value="4">Tanya Smith</option>
    </optgroup>
</select>

【讨论】:

  • 谢谢,但除了“John Smith”,我还需要值“Admins”。
  • 尝试再次运行 sn-p。这可能会得到你想要的。 @GoodSpeed。我只是将这些值放在警报中只是为了查看一些结果。 :)
【解决方案2】:

为什么不在选项的值中添加组的指标,例如:

<select name="assign_id">
<optgroup label="Admins">
        <option value="Admins_1">John Smith</option>
        <option value="Admins_2">Jane Smith</option>
</optgroup>
<optgroup label="Editors">
        <option value="Editors_3">Brian Smith</option>
        <option value="Editors_4">Scott Smith</option>
</optgroup>
<optgroup label="Basic Users">
        <option value="Basic_Users_3">Kevin Smith</option>
        <option value="Basic_Users_4">Tanya Smith</option>
</optgroup>

并在您的 php 文件中使用 substr ,例如:

<?php $groupName = ( (substr($_POST['assign_id'],'Admins') != -1) ? 'Admins' : ( (substr($_POST['assign_id'],'Editors') != -1 ) ? 'Admins' : 'Basic_Users' ) ) ?>

并获得选项的实际价值使用str_replace

<?php $optionValue = str_replace(array('Admins_','Editors_','Basic_Users_'),'',$_POST['assign_id']) ?>

【讨论】:

    【解决方案3】:
    <?php
    /*
    
    Database: `testdb`
    
    Table structure for table `groupnames`
    
    DROP TABLE IF EXISTS `groupnames`;
    CREATE TABLE IF NOT EXISTS `groupnames` (
    `id` int(11) NOT NULL AUTO_INCREMENT,
    `groupname` varchar(50) DEFAULT NULL,
    `name` varchar(50) DEFAULT NULL,
    PRIMARY KEY (`id`)
    ) ENGINE=MyISAM AUTO_INCREMENT=7 DEFAULT CHARSET=latin1;
    
    Dumping data for table `groupnames`
    
    INSERT INTO `groupnames` (`id`, `groupname`, `name`) VALUES
    (1, 'Admins', '1'),
    (2, 'Admins', '2'),
    (3, 'Editors', '3'),
    (4, 'Editors', '4'),
    (5, 'Basic Users', '5'),
    (6, 'Basic Users', '6');
    COMMIT;
    
    */
    
    $conn = mysqli_connect("localhost","root","","testdb"); //server,username,password,database
    if(!$conn){
    die("Database Connection Failed."); //if wrong server name,username,password or database name
    }
    
    if(isset($_POST['submit'])){
    $grouplabel_name = $_POST['grouplabel_name'];
        echo $grouplabel_name; //displays the group label name and name from the group
    }
    ?>
    <form method="post" action="">
    <select name="grouplabel_name">
    <option></option>
        <?php
            $query = mysqli_query($conn,"SELECT * FROM groupnames ORDER BY id ASC")or die(mysqli_error($conn));
    
                while($row = mysqli_fetch_object($query)){
                    $grouplabel = $row->groupname; //group label
                    $name = $row->name; //name from the group
    
                        if($grouplabel == "Admins"){
                        ?>
                        <optgroup label="Admins">
                            <option value="<?php echo $grouplabel.' - '.$name; ?>"><?php 
                                if($name == 1){
                                echo "John Smith"; 
                                }
                                elseif($name == 2){
                                echo "Jane Smith";
                                }
                        ?>    
                            </option>
                        </optgroup>
    
                        <?php
                        }
                        elseif($grouplabel == "Editors"){
                        ?>
                        <optgroup label="Editors">
                            <option value="<?php echo $grouplabel.' - '.$name; ?>"><?php 
                                if($name == 3){
                                echo "Brian Smith"; 
                                }
                                elseif($name == 4){
                                echo "Scott Smith";
                                }
                        ?>
                            </option>
                        </optgroup>
    
                        <?php
                        }
                        elseif($grouplabel == "Basic Users"){
                        ?>
                        <optgroup label="Basic Users">
                            <option value="<?php echo $grouplabel.' - '.$name; ?>"><?php 
                                if($name == 5){
                                echo "Kevin Smith"; 
                                }
                                elseif($name == 6){
                                echo "Tanya Smith";
                                }
                        ?>
                            </option>
                        </optgroup>
                        <?php
                        }
                }
            ?>
    </select>
    <input type="submit" name="submit" value="Submit">
    </form>
    

    希望对你有帮助:)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-02-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-07-28
      相关资源
      最近更新 更多