我有一个像这样的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。我该如何制作它以便我可以点击任何表格?感谢
答案 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)
})