を使用してテーブルに新しいレコードを投稿しようとしています<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
。しかし、私のテーブルのすべての行には一意のIDがあり、そのIDはすべての横に配置されname
ます。だから私はIDを取得しようとしていますが、$_GET
これまでのところ成功していません。私が試している方法は間違っていますか、それとも何か他のことをしていますか?誰かが何が悪いのか教えてくれるなら、私は感謝します。
上に配置されるPHP <html>
<?php
if (isset($_POST['saveRecord'])) {
if (isset($_POST["newRecord"]) && !empty($_POST["newRecord"])) {
$id = $_GET['record'];
$klant=$_POST['newRecord'].$id;
$query = "INSERT INTO table2
(recordid, recordname)
VALUES
(NULL, '$record')";
mysqli_query($con, $query);
}
}
?>
マークアップ
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
<table>
<?php
$query = ("select * from table1");
$result = mysqli_query($con, $query) or die (mysqli_error());
while($row = mysqli_fetch_array($result, MYSQLI_ASSOC)){
$id = $row['rowid'];
?>
<tr>
<td>
<input class="newRecord<?php echo $id; ?>" type="text" name="newRecord<?php echo $id; ?>" />
<a href="?record=<?php echo $id; ?>">
<button class="saveRecord<?php echo $id; ?>" name="saveRecord<?php echo $id; ?>">Save</button>
</a>
</td>
</tr>
<?php } ?>
</table>
</form>
両方を同時に実行しようとしないでください($ _GET変数は、フォームのアクションに含まれている場合にのみ渡されます)。
フィールドの名前にはIDが含まれているため、スクリプトは$ _POSTからレコードを取得しません。
各レコードを個別のフォームとして作成する(WHILEループ内でロット全体を移動する)か、次のようにフィールド名内に保持されているIDを使用できます。
$newdata = array();
foreach($_POST as $k => $v) {
if ((substr($k,0,9) == 'newRecord') && (!empty($v)) {
$id = substr($k,9);
$klant = $v;
$newdata[$id] = $klant;
}
}
フィールド名からIDを抽出し、フォームに入力されたデータに関連付ける必要があります。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加