我有一个包含foreach的表单。这是我的代码:
<table style="direction: rtl;text-align: right;width: 1500px;font-family: tahoma;" align="center">
<thead>
<tr>
<th style="width:5%; ">#</th>
<th style="width:20%;">Name</th>
<th>Date</th>
<th>Buyer Code</th>
<th>User Code</th>
<th>Check</th>
</tr>
</thead>
<tbody>
<?php
$i=1;
foreach($Items as $Item)
{
echo '<form method="post" action="/provider/provider/checkUserCodeValidation">
<tr>
<td>'.$i.'</td>
<td>'.$Item->getUser()->getFullName().'</td>
<td>'.$Item->getCreationDate(true,'Date').'</td>
<td>'.$Item->getBuyerCode().'</td>
<td><input name="userCode" id="userCode" value=""/></td>
<td><input type="submit" name="Submit" id="submit_butt" value="Submit"/></td>
</tr>
</from>';
$i++;
}
?>
</tbody>
</table>
输出将是:
现在我想要做的是,当用户在UserCode中输入一个整数并点击提交时,它会检查数据库中是否存在该整数。我在checkUserCodeValidation(表单的操作)中处理该过程。问题是,如果填写了任何字段,它会将userCode的值发送为null。但最后一个有效。我该怎么办才能单独提交每一个?
重要!!:我尝试使用一个按钮,其中所有表格都是一种形式,但问题是它发送的数组会让人痛苦,因为我必须内爆它和后来我的功能。所以,请帮助我,如果你有通过Javascript的任何解决方案,也将不胜感激。
Cheeeeers
答案 0 :(得分:1)
您必须为每个输入提供唯一ID。所以你得到了所有的价值。
其他方式是让每一行成为一个表格。
Ajax是最好的解决方案,但在这种情况下,输入类型必须是按钮而不是提交。然后你必须定义点击处理程序,它进行ajax调用。这是jjery doc for ajax post:http://api.jquery.com/jquery.post/ 您也可以在vanilla js中执行此操作:http://vanilla-js.com
答案 1 :(得分:1)
你的文本框ID是相同的
所以将任何动态值添加到文本框和名称
像
<input name="userCode[]" id="userCode<?php $i ?>" value=""/>