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

标签 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'];
}

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

最佳答案

使用 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;
}

关于javascript - 如何检索具有相同名称的多个输入的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25884616/

相关文章:

javascript - Rails 表单通过 ajax post 提交,不调用成功或错误回调函数

javascript - JQuery val 为 null 或不是对象

事件上的 JavaScript 函数在声明上运行

javascript - 如何在按钮点击时添加自定义CSS?

php - MySQL JOIN 许多表将条件列表获取到一个表中

PHP 将字符串转换为 float / double

javascript - 防止使用绑定(bind)事件在 TextArea 上写入 "input propertychange"

javascript - 即时更改 Twitter 小部件的外观

javascript - NodeJS Selenium Chrome Webdriver 连接被拒绝

php - 搜索具有可点击结果的用户,点击后将直接转到其个人资料