私はここで正直になります-私は、所有者がさまざまな入力タイプ(テキスト、チェックボックス、ラジオなど)のテキストの質問を作成できるようにする調査ソフトウェアを持っている最善の方法からこれにアプローチしていないと確信しています非常に簡単で、質問テーブルを検索し、テキスト、チェックボックス、ラジオ...および出力を含むフィールドans_typeを見つけました。
switch ($rowq['ans_type']) {
case "text":
echo '<tr bgcolor="#DDDDDD" align="left" valign="middle"><td width="30"> </td> <td width="350">'.$rowq['question'].'</td><td width="350"><input class="tb8" type="text" name="quest[]" value="'.$rowa['answer'].'" size="40"></td></tr>';
break;
ご覧のとおり、rowqには質問情報が含まれ、rowaには回答情報が含まれています。
私の問題はチェックボックスとラジオで発生しました。現在、複数のオプションがある可能性があります。現在、私のテーブルはこのように設定されており、チェックボックスとラジオで最大15のオプションを使用できます。
CREATE TABLE `question` (
`sid` int(10) NOT NULL,
`qid` double(10,1) NOT NULL,
`question` varchar(500) NOT NULL,
`ans_type` varchar(100) NOT NULL,
`opt_one` varchar(200) DEFAULT NULL,
`opt_two` varchar(200) DEFAULT NULL,
`opt_three` varchar(200) DEFAULT NULL,
`opt_four` varchar(200) DEFAULT NULL,
`opt_five` varchar(200) DEFAULT NULL,
`opt_six` varchar(200) DEFAULT NULL,
`opt_seven` varchar(200) DEFAULT NULL,
`opt_eight` varchar(200) DEFAULT NULL,
`opt_nine` varchar(200) DEFAULT NULL,
`opt_ten` varchar(200) DEFAULT NULL,
`opt_eleven` varchar(200) DEFAULT NULL,
`opt_twelve` varchar(200) DEFAULT NULL,
`opt_thirteen` varchar(200) DEFAULT NULL,
`opt_fourteen` varchar(200) DEFAULT NULL,
`opt_fifteen` varchar(200) DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
CREATE TABLE `answers` (
`surveyid` int(10) NOT NULL,
`question` double(10,1) NOT NULL,
`answer` varchar(50000) DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
したがって、最初にこれらのタイプの特定の質問に使用できるオプションの数を決定する必要があります-各opt_numbersでrowq ['...']!= NULLの場合にのみチェックボックスを追加できると考えましたが、これで修正されませんただし、2番目の問題-この調査がすでに記入されていて、その人が編集している場合は、選択済みのチェックボックスをオンにする必要があります(チェックボックスの場合は15個すべて、ラジオの場合は1個の場合もあります)rowa ['answer']には、「」で区切られた私の回答が含まれています。回答にopt_one-fifteenを追加して、チェックされているかどうかに基づいてint1または0を含める方が簡単です。
私は正直なところ、これからどこに行くべきかわかりません-より良い方法がある場合はデータベースを変更することを含めて、どんな助けもありがたいです。
case "radio":
break;