如何检索具有相同名称的多个输入的值?

时间:2014-09-17 07:20:44

标签: javascript php jquery

我正在显示XML文件中的一些信息,每个我都有按钮,允许用户删除数据。

现在我使用隐藏的输入字段来存储处理表单所需的一些信息。所有隐藏的输入字段都具有合理的名称值。当用户单击删除按钮时,我想要检索被单击的隐藏字段的值,但它返回最后一个。

这是我的代码:

function displayPapers(){
    var courseCode = $("#subject").val();

    loadXML(courseCode, function(xmlDoc){
        $(xmlDoc).find('paper').each(function(){
            var code = $(this).find("code")[0].textContent;
            var title = $(this).find("title")[0].textContent;
            var semester = $(this).find("semester")[0].textContent;

            $("#papers").append("<p>" + code + ": " + title + " (S" + semester + ") " +
                                "<input type='submit' name='paperUpdate' value='Edit'>" +
                                "<input type='submit' name='paperDelete' value='Delete'>" +
                                "<input type='hidden' name='paperCode' value='" + code + "'></p>");
        })
    });
}

以下是用于处理表单的PHP代码:

if(isset($_POST['paperUpdate'])){
   echo $_POST['paperCode'];
}

我想检索单击了删除按钮的隐藏字段的值。我不知道如何解决这个问题。感谢。

3 个答案:

答案 0 :(得分:1)

使用jQuery DOM遍历函数查找相关元素。

$('input[name=paperDelete]').click(function() {
    var paperCode = $(this).next().val();
    // Do something with paperCode
});

为了能够在PHP中获取所有值,您应该为其命名,以[]结尾。然后PHP将所有值转换为数组。所以将代码更改为:

        $("#papers").append("<p>" + code + ": " + title + " (S" + semester + ") " +
                            "<input type='submit' name='paperUpdate' value='Edit'>" +
                            "<input type='submit' name='paperDelete' value='Delete'>" +
                            "<input type='hidden' name='paperCode[]' value='" + code + "'></p>");
    })
});

然后您的PHP可以:

foreach ($_POST['paperCode'] as $code) {
    echo $code;
}

答案 1 :(得分:0)

尝试 -

$("#papers").on("click","input[name='paperDelete']",function(){
  alert($(this).siblings("input[name='paperCode']").val())
})

DEMO

答案 2 :(得分:0)

对于具有相同名称的多个字段。尝试这样的事情..

<?php
if(isset($_POST['btn']))
{
    $name = $_POST['nam'];
    //var_dump($name);
    echo $name[0];
    echo "<br>";
    echo $name[1];
    echo "<br>";
    echo $name[2];
}

?>
<form method='post'>
FirstName:<input type='text' name='nam[]'>
MiddleName:<input type='text' name='nam[]'>
LastName:<input type='text' name='nam[]'>
<input type="submit" value="POST" name="btn">
</form>