简体   繁体   English

如何从相同格式的相同名称的不同选择选项中获得一个值

[英]How can i get one value from different select options with the same name in the same form

I have assigned three select options with the same name which will be stored in the my database table. 我分配了三个具有相同名称的选择选项,这些选项将存储在我的数据库表中。 My code was working well at first right now i don't why it's working well. 我的代码起初运行良好,我不明白为什么它运行良好。 right now it only saves the value assigned to the last select option panel. 现在,它仅保存分配给最后一个选择选项面板的值。 Please i need help 请我需要帮助

<?php
    if(isset($_POST['submit'])){
        $vic_title      = $_POST['vic_title'];
        $vic_name       = $_POST['vic_name'];
        echo $vic_name;
        if($vic_name=='')
            echo "<font color='Green'><b>Please fill in the discription the accused name THANKS!!</b></font>";
        else 
            $insert = "INSERT INTO discips(vic_title, vic_name) 
                        values('$vic_title','$vic_name')";

        $run = mysql_query($insert);
        if ($run) {
            echo "<font color='Green'><b>the incident was added</b></font>";
            # code...
        }
        else{
            echo "<font color='red'><b>the incident was not added</b></font>";
        }
    }
?>

Here is my form that i used. 这是我使用的表格。

<form name="harvets" id="form" action="?pg=<?php echo $_GET[pg]."&lodge_inc"."&hv=$token"; ?>" method="post" enctype="multipart/form-data">
        <input type="hidden" name="id" value="<?php echo $edit_ca;?>">
        <center style="padding-top: 2%; margin-top: 3%;"><h3>Enter Incident Informtion</h3></center>
        <table width="100%" class="m_aligned">

            <tr>
                <td align="right" style="width: 100%;">Victim *</td>
                <td align="left" style="width: 100%;">
                    <select style="width: 100%;" id="victim" name="vic_title" class="sect" placeholder="Select a Role">
                        <option></option>
                        <option value="staff">Staff</option>
                        <option value="student">Student</option>
                        <option value="visitor">Vistor</option> 
                    </select>
                </td>
            </tr>

            <tr id="staff_name" style="display: none;">
                <td align="right" style="width: 100%;">Staff Name : </td>
                <td align="left" style="width: 100%;">
                    <select style="width: 100%;" name="vic_name" class="sect" placeholder="Staff's Name">
                        <?php 
                            $get_staf = "select * from  useraccounts";
                            $run_staf =  mysql_query($get_staf);
                            while ($row = mysql_fetch_array($run_staf)) {
                                $staf_id = $row['username'];
                                $staf_name = $row['name'];
                                echo "<option value='$staf_id'>". $staf_name ."</option>"; 
                                # code...
                            } 
                        ?>
                    </select>
                </td>
            </tr>
            <tr id="vis_name" style="display: none;">
                <td align="right" style="width: 100%;">Visitor Name : </td>
                <td align="left" style="width: 100%;"><input type="text" name="vic_name" placeholder="Visitor's Name"></td>
            </tr>
            <tr id="stud_name" style="display: none;">
                <td align="right" style="width: 100%;">Student Name: </td>
                <td align="left" style="width: 100%;">
                    <select style="width: 100%;" class="sect" name="vic_name" placeholder="Student's Name" cols="9">
                        <option></option>
                        <?php 
                            $get_stud= "SELECT * FROM studentdetails";
                            $run_stud =  mysql_query($get_stud);
                            while ($row = mysql_fetch_array($run_stud)) {
                            $stud_id = $row['id'];
                            $stud_fname = $row['fname'];
                            $stud_lname = $row['lname'];
                            echo "<option value='$stud_id'>". $stud_fname ." ". $stud_lname ."</option>"; 
                            # code...
                        } ?>
                    </select>
                </td>
            </tr>

SAVE

Here is My JavaScript 这是我的JavaScript

<script type="text/javascript">
    $("#victim").change(function (ev){
        if($(this).val()=='visitor') $("#vis_name").css("display", "table-row")
        else $("#vis_name").css("display", "none")

        if($(this).val()=='student') $("#stud_name").css("display", "table-row")
            else $("#stud_name").css("display", "none")
        if($(this).val()=='staff') $("#staff_name").css("display", "table-row")
              else $("#staff_name").css("display", "none")
    });
</script>

<script type="text/javascript">
    $(document).ready(function() {
      $(".sect").select2({
        allowClear: true
      });
</script>

Getting the value of the last field (select or anything) using a given name is the correct behaviour. 使用给定名称获取最后一个字段(选择或任何内容)的值是正确的行为。 If you wish to send multiple values when submiting the form, you must give different names to their fields. 如果您希望在提交表单时发送多个值,则必须为其字段指定不同的名称。

Ask yourself why you want to name them the same way. 问自己,为什么要使用相同的名称命名。 How are you supposed to get them ? 您应该如何获得它们? If I create three different inputs, name the three of them 'title' and submit the form after type different things in each input, what do you guess I'll get if I access $_POST['title'] ? 如果我创建三个不同的输入,在其中三个输入中分别命名为“ title”,然后在每个输入中键入不同的内容后提交表单,那么如果我访问$_POST['title'] ,您会得到什么? More problematic, what should I type to get the value of the first of my three inputs ? 更有问题的是,我应该键入什么才能获得三个输入中的第一个输入的值? How the hell would I know, these are identical elements with different purposes ! 我怎么会知道,这些是具有不同目的的相同元素!

If you design different elements, give them different features or they won't be different. 如果您设计不同的元素,请为它们提供不同的功能,否则它们不会有所不同。 They will just overwrite each other and you'll only have the last of the lot. 他们只会互相覆盖,而您将只有最后一批。

If you truly need to have them named the same, add hooks at the end of the name like this : 如果您确实需要将它们命名为相同的名称,请在名称的末尾添加钩子,如下所示:

name="vic_name[] . name="vic_name[]

It will append the value of that field to $_POST['vic_name'] , which will now be an array, and therefore may contain multiple values. 它将将该字段的值附加到$_POST['vic_name'] ,该字段现在将是一个数组,因此可能包含多个值。 That's the only way. 那是唯一的方法。

I have solved the problem. 我已经解决了问题。 I created two files by using AJAX to call another file to replace one a certain line of code. 我通过使用AJAX调用另一个文件以替换某一行代码来创建了两个文件。 Sometimes we may want something and we fail in someway or another, but when we focus deeply we can solve the code. 有时我们可能想要某些东西,但有时会失败,但是当我们深入关注时,便可以解决代码。

i replaced my Javasrcipt file with 我用替换了我的Javasrcipt文件

<script type="text/javascript">
    $("#victim").change(function () {
        var cat = $(this).val();
        $.ajax({
            type: "GET"
            , url: "student/fetch_victim.php"
            , data: "n=" + Math.random() + "&vr=" + cat
            , beforeSend: function () {
                $("#ctg").html("<img src='imgs/loader.gif' />...loading")
            }
            , success: function (response) {
                $("#tryme").html(response)
            }
        });
    });
</script> 

and i moved the sections i wanted to another file 我将想要的部分移到了另一个文件中

<?php
require "../ht.php"; $hom = new ht;
    if($_GET['vr']){
        $q = $_GET['vr'];

        if($q =='staff'){
            echo "
                <td align='right' style='width: 100%;'>Staff Name : </td>
                <td align='left' style='width: 100%;'>
                    <select name='vic_name' class='sect' style='width: 100%;'  value='<?php echo $edit[2] ?>' placeholder='Staff's Name'>";
                            $staf = mysql_query("SELECT * FROM  useraccounts"); $w=mysql_error();
                            while ($row = mysql_fetch_array($staf)) {
                                echo "<option value='$row[0]'>". $row[1] ."</option>"; 
                                # code...
                            } 
                    echo "</select>
                </td>
            ";
        }elseif ($q == 'student') {
            echo "
                <td align='right' style='width: 100%;'>Student Name: </td>
                <td align='left' style='width: 100%;'>
                    <select style='width: 100%;' class='sect' name='vic_name' value='".$edit[2] ."' placeholder='Student's Name' cols='9'>
                        <option></option>";
                        $stud= mysql_query("SELECT * FROM studentdetails");
                        while ($row = mysql_fetch_array($stud)) {
                            echo "<option value='$row[31]'>". $row[0] .' '. $row[1] ."</option>"; 
                            # code...
                        } 
                    echo "</select>
                </td>
            ";
        }else{
            echo "
                <td align='right' style='width: 100%;'>Visitor Name : </td>
                <td align='left' style='width: 100%;'><input style='width: 100%;' type='text' name='vic_name' value='".$edit[2] ."'placeholder='Visitor's Name'></td>
            ";
        }

    }
?>
<script type="text/javascript">(function($){
  var code = $('.html-container').html();
  $('.html-viewer').text(code);
})(jQuery);</script>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 如何获得具有相同类和名称的多个选择选项的值 - How to get Value of multiple select options with same class and name 我如何从具有相同类的不同选择类型中选择值并获取其值 - How can i select values from different select types having same class and get their value jQuery:从具有相同名称的不同选择标记中获取值 - jQuery: get value from different select tag with same name 如何从同一页面上的选择框中获取值 - How can I get a value from a select box on the same page 如何在同一浏览器窗口中从另一表单中的一个表单访问变量? - How can I access a variable from one Form in a different Form inside the same browser window? 如何使用 JavaScript 从具有相同名称但具有不同类型的数组中获取一个字符串/值? - how to get one string / value from an Array which has the same name but has a different type using JavaScript? 如何使用javascript或jquery从具有相同CSS类名称的两个不同下拉列表中选择选项 - How to select options from two different dropdowns of same css class name using javascript or jquery 如何从动态生成的选择选项中获得价值? - How can I get value from dynamically generated select options? 如何在一个 select 选项中获取选定值,并在此基础上,从 MySQL 表中获取数据,以相同形式显示另一个 select 选项 - How to get selected value in one select option and based on that, fetch data from MySQL table to show another select option in the same form 如何从一种形式的输入字段中获取数据,并使用JQuery使用它以另一种形式填充相同的输入类型? - How can I take data from one an input field of one form and use it to populate the same input type in a different form using JQuery?
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM