簡體   English   中英

如何從相同格式的相同名稱的不同選擇選項中獲得一個值

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

我分配了三個具有相同名稱的選擇選項,這些選項將存儲在我的數據庫表中。 我的代碼起初運行良好,我不明白為什么它運行良好。 現在,它僅保存分配給最后一個選擇選項面板的值。 請我需要幫助

<?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>";
        }
    }
?>

這是我使用的表格。

<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>

這是我的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>

使用給定名稱獲取最后一個字段(選擇或任何內容)的值是正確的行為。 如果您希望在提交表單時發送多個值,則必須為其字段指定不同的名稱。

問自己,為什么要使用相同的名稱命名。 您應該如何獲得它們? 如果我創建三個不同的輸入,在其中三個輸入中分別命名為“ title”,然后在每個輸入中鍵入不同的內容后提交表單,那么如果我訪問$_POST['title'] ,您會得到什么? 更有問題的是,我應該鍵入什么才能獲得三個輸入中的第一個輸入的值? 我怎么會知道,這些是具有不同目的的相同元素!

如果您設計不同的元素,請為它們提供不同的功能,否則它們不會有所不同。 他們只會互相覆蓋,而您將只有最后一批。

如果您確實需要將它們命名為相同的名稱,請在名稱的末尾添加鈎子,如下所示:

name="vic_name[]

它將將該字段的值附加到$_POST['vic_name'] ,該字段現在將是一個數組,因此可能包含多個值。 那是唯一的方法。

我已經解決了問題。 我通過使用AJAX調用另一個文件以替換某一行代碼來創建了兩個文件。 有時我們可能想要某些東西,但有時會失敗,但是當我們深入關注時,便可以解決代碼。

我用替換了我的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> 

我將想要的部分移到了另一個文件中

<?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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM