我遵循了这里的一些建议,即使用CSS来创建表,而不是使用table元素来为每行数据创建表单。'table‘输出是由AJAX调用的PHP生成的。生成的HTML看起来是正确的。我甚至在输入元素上使用了'form‘属性。尽管如此,当我单击一行中的一个提交按钮时,它仍然会发送所有行,从而导致问题。超文本标记语言below.....Does这看起来对吗?
<style>
.table { display: table; }
.table>* { display: table-row; }
.table>*>* { display: table-cell; padding: 5px; border-style: inset;}
</style>
<div class="table">
<div>
<div><b>Event Id</b></div>
<div><b>Date</b></div>
<div><b>@username</b></div>
<div><b>Sign Up!</b></div>
</div>
<form id="form12" method="post">
<div>12</div>
<div>Feb-26-2021</div>
<div><input class="formSignup" type="text" name="pi_username" id="pi_username" maxlength="20" placeholder="@username" form="form12"></div>
<div><input class="formSignup" type="hidden" name="event_id" id="event_id" value="12" form="form12">
<input name="submit12" type="submit" value="Sign up!" onclick="signup(); return false;">
</div>
</form>
<form id="form13" method="post">
<div>13</div>
<div>Feb-27-2021</div>
<div><input class="formSignup" type="text" name="pi_username" id="pi_username" maxlength="20" placeholder="@username" form="form13"></div>
<div><input class="formSignup" type="hidden" name="event_id" id="event_id" value="13" form="form13">
<input name="submit13" type="submit" value="Sign up!" onclick="signup(); return false;">
</div>
</form>
</div>
发布于 2021-02-27 00:01:01
signup()函数查找具有相同类(formSignup)的元素。所有输入字段都具有相同的类名,并且都被发送到signup()函数。我已经更新了类名,使其对于每行都是唯一的。现在只发送了一行。
使用唯一类名的示例:
type='hidden‘name='event_id’id='event_id‘value='”.$row’id‘. "’form='form“.$row‘’id‘. "'>
CSS表正在正确绘制。
https://stackoverflow.com/questions/66380540
复制相似问题