私のコードでは、mysqlの行が表示され、最後に日付を入力してから挿入しますそれをデータベースに格納します。チェックボックスの行ごとに入力を個別に更新するようにする方法を理解できません。その行のチェックボックスをPHPでクリックした場合の入力値の取得方法
$i = 0;
while($row = $result->fetch_assoc()) {
echo "<div class='row'>
<div class='col-md-10 col-offset-1'>
<tr>
<td>
<input type='checkbox' name='chk1[$i]' value='".$row['customerid']."' /> " .$row['firstname']." ".$row['lastname'].
"</td>
<td>" .
$row['phonenumber'].
"</td>
<td>" .$row['brand'].
"</td>
<td>" .$row['stock'].
"</td>
<td>" .$row['shoename'].
"</td>
<td>" .$row['size'].$row['width']. "</td>";
echo "<td><input name='backorder' type='date'/></td>
<td id='comments'>" .$row['comment']. "</td>
</div>
</div>";
$cid[$i] = $row['customerid'];
$i++;
}
したがって、私はこれを下に更新するとすべてがうまく更新されますが、データベースのすべての行にはバックオーダーの値が同じになります。
if(isset($_POST['chk1'])) {
foreach($_POST['chk1'] as $cid[$i]) {
$chk1[] = array($cid[$i]);
if(!empty($chk1)) {
//include("email.php");
$sql = "SELECT * FROM shoes WHERE customerid =" .$cid[$i];
$result = $conn->query($sql);
if ($result->num_rows > 0) {
// output data of each row
while($row = $result->fetch_assoc()) {
$texting = $row['texting'];
$name = $row['firstname'];
$email = $row['email'];
$provider = $row['provider'];
$brand = $row['brand'];
//$sql must be in this loop in order to execute all checkboxes.
$sql = "UPDATE shoes SET ordered=CURDATE(), backorder='backorder' WHERE customerid=".$cid[$i];
入力がチェックされているかどうかを確認し、チェックボックスのIDとajaxの値を比較し、チェックされた値を100%でないものに変更するだけでよいので、回答に入れなかったと思うかもしれません。 – brad
行ごとにフォームがあるので、すべての行に独自の送信ボタンがあります。または、javascriptとajaxを使用してその行から値を抽出し、残りのフォームではなく、その値のみをサーバーに送信します。 –