私は以下のスクリプトを使用して、動的に作成されたフォームの値をMySQLデータベースに格納しています。ユーザーは、情報を保存するために保存された後にフォームに戻ることができます。PHPを使用して未回答のラジオボタンの質問をNULL値としてMySQLデータベースにPOSTするには?
このアプリケーションでは、ラジオボタンのフォーム要素が使用されています。この要素は、回答があった場合にのみPOSTによって送信されます。 MySQLデータベースのデフォルト値はNULLに設定されています。だから、質問に答えることができないなら、それはNULLのままです。これは素晴らしいことです。
しかし、jQueryを使用して特定のフォーム要素をリセットすることもできます(つまり、ラジオボタンをクリアすることもできます)。
ユーザーがラジオボタンの質問に回答し、フォームを保存し、後で返り、ラジオボタンの質問をクリアした場合、値はデータベースでNULLに戻されません。
どうすればいいのですか?
<?php
require_once('../../includes/connect.php');
$org_id = $_SESSION['ORG_ID'];
$user_id = $_SESSION['USER_ID'];
$dbh = get_org_dbh($org_id);
$sql = "UPDATE health_forms SET ";
$values = array();
foreach ($_POST as $field => $value){
$sql .= "$field=?, ";
array_push($values, $value);
}
$sql = rtrim($sql,", ");
$sql .= " WHERE id=?;\n";
array_push($values, $user_id);
try {
$sth = $dbh->prepare($sql);
$sth->execute($values);
}
header("location: ../index.php?i=completed");
?>
こんにちはアダム、既定値は、すべての列のデータベースでNULLに既に設定されています。最初に答えられない質問については、これらはnullのままです。 – Michael