Javascript 如何从同一表单中具有相同名称的不同选择选项中获取一个值

Javascript 如何从同一表单中具有相同名称的不同选择选项中获取一个值,javascript,php,html,Javascript,Php,Html,我已经指定了三个同名的select选项,它们将存储在我的数据库表中。我的代码一开始运行得很好,现在我不知道为什么它运行得很好。现在它只保存分配给最后一个“选择”选项面板的值。求你了,我需要帮助 <?php if(isset($_POST['submit'])){ $vic_title = $_POST['vic_title']; $vic_name = $_POST['vic_name']; echo $vic_

我已经指定了三个同名的select选项,它们将存储在我的数据库表中。我的代码一开始运行得很好,现在我不知道为什么它运行得很好。现在它只保存分配给最后一个“选择”选项面板的值。求你了,我需要帮助

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

使用给定名称获取最后一个字段(选择或任何内容)的值是正确的行为。如果您希望在提交表单时发送多个值,则必须为其字段指定不同的名称

问问你自己,为什么你想用同样的方式来命名它们。你要怎么得到它们?如果我创建三个不同的输入,将其中三个命名为“title”,并在每个输入中键入不同的内容后提交表单,那么如果我访问
$\u POST['title']
,您猜我会得到什么?更麻烦的是,我应该键入什么来获取三个输入中第一个输入的值?我怎么会知道,这些都是相同的元素,有着不同的用途

如果你设计了不同的元素,给它们不同的特性,否则它们就不会不同。它们会互相覆盖,而你只能得到最后一批

如果确实需要将它们命名为相同的名称,请在名称末尾添加钩子,如下所示:

name=“vic\u name[]”


它会将该字段的值附加到
$\u POST['vic\u 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> 

$(“#受害者”)。更改(函数(){
var cat=$(this.val();
$.ajax({
键入:“获取”
,url:“student/fetch_受害者.php”
,数据:“n=“+Math.random()+”&vr=“+cat
,beforeSend:函数(){
$(“#ctg”).html(“…加载”)
}
,成功:功能(响应){
$(“#tryme”).html(回复)
}
});
});
我把我想要的部分移到了另一个文件中

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

我希望这样。我已经尝试添加name='vic\u name[]有时它不起作用,我们想要的是不可能的。不,如果我们再多做一点,这是可能的。我已经用Ajax解决了这个问题,并且按照我希望的方式工作。但我还是要感谢你的帮助。然后你没有实际描述你想要什么。你说你想在同一个变量中收集多个字段,这就是im可能。如果您费心将它们作为JSON发送,那么您也可以直接在表单中使用数组,以减少麻烦。
<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>