以多种形式选择表单数据

时间:2017-05-06 06:04:55

标签: javascript php jquery arrays forms

我有一个像这样的php循环:

<?php foreach($result as $row) { ?>

    <form action="" method="post" name="my-form" id="my-form">
        <input type="hidden" name="user-id" id="user-id" value="<?php $row['user_id']; ?>">
        <input type="submit" name="submit" id="submit" value="Submit">
    </form>

<?php } ?>

它将在每个循环上输出一个表单。

这是我的javascript代码:

document.getElementById("appointment-single-form").onsubmit = function (e) {
    ev.preventDefault();
    var queryString = $('#appointment-single-form').serialize();
    console.log(queryString); // output to console: user-id={user's id from the specific form that was clicked/submitted}
}

根据点击/提交的表单,我需要使用javascript获取表单值。

问题:只有第一个表单正常工作,因为getElementById仅适用于一个ID。我该如何制作它以便我可以点击任何表格?感谢

1 个答案:

答案 0 :(得分:0)

使用obj这样的。更好地使用let arr = [{ "master_id": { "id": 1 }, "total": 50 }, { "master_id": { "id": 2 }, "total": 100 }, { "master_id": { "id": 1 }, "total": 150 }, { "master_id": { "id": 3 }, "total": 50 }, { "master_id": { "id": 2 }, "total": 200 } ] let res = arr.reduce((myarr, obj) => { let exist = myarr.filter(t => t.master_id.id === obj.master_id.id)[0] if (exist) { exist.total += obj.total } else { myarr.push({ "master_id": { "id": obj.master_id.id }, total: obj.total }) } return myarr }, []) console.log(res)jquery而不是表单的ID。因为tagname是唯一的

classname

<强> 实施例

Id
$(document).on('submit' ,'form',function(e){
  e.preventDefault();
 var query = $(this).serialize()
 console.log(query)
})