とあるサイトの更新ページを作っています。
下記の画像は、
上から5行目まではDBへ登録している情報を表示させています。
そして、一番下のテキストボックスは新しく資格を取得した時に追加できるためのフィールドです。
問題は
更新だけしたいだけの場合でも、
空文字の新規追加が必ず1件はされてしまうことです。
それが5行目になります。
画像の状態で更新すると
もう1件空のフィールドが表示されます。
4 この資格を削除する
3 この資格を削除する
2 この資格を削除する
1 この資格を削除する
空 この資格を削除する
空 この資格を削除する
空 新規追加
これはどう防げばよいでしょうか?
知恵をお貸しください...
参考になるか分かりませんが、
ソースは下記です。
<?php /所有資格->更新 $sql = "UPDATE user_qualifications SET qualification = ? WHERE id = ? "; for($i=0;$i<count($_POST['qualifications']);$i++) { $stmt = $pdo->prepare($sql); $stmt->execute([ $_POST['qualifications'][$i], $_POST['id_sq'][$i] ]); } //所有資格->新規追加 $sql = "INSERT INTO user_qualifications(user_id,qualification) VALUES (?, ?)"; for($i=0;$i<count($_POST['qualifications_add']);$i++) { $stmt = $pdo->prepare($sql); $stmt->execute([ $_SESSION['id'], $_POST['qualifications_add'][$i] ]); } //ログインしている人のユーザーデータを取得(lalue割り当て用) $sql = "SELECT * FROM user_data WHERE id=?"; $stmt = $pdo->prepare($sql); $stmt->execute([ $_SESSION['id'] ]); $RowData = $stmt->fetch(); ?> <tr> <td colspan="2">所有資格</td> </tr> <?php foreach ($stmtQualifications as $sq): ?> <tr> <td> <input type="hidden" name="id_sq[]" value="<?php echo $sq['id'] ?>"> <input type="text" name="qualifications[]" maxlength="50" value="<?php echo $sq['qualification'] ?>"> <br /> </td> <td> <a href='delete_skills.php?id=<?php echo $sq['id'] ?> ' onclick="return confirm('本当に削除してよろしいですか?')">この資格を削除する</a> </td> </tr> <?php endforeach ?> <tr id="qualification" class="qualification"> <td colspan="2"> <input type="text" name="qualifications_add[]" maxlength="50"> </td> </tr> <tr id="quaAdd"> <td colspan="2"> <input type="button" value="追加" onClick="quaAdd()"> <input type="button" value="削除" onClick="quaDel()" id="qua_btnDel" disabled="true"> </td> </tr>
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/07/12 09:21
2016/07/12 09:24
2016/07/12 09:29
2016/07/12 09:35