質問: str_replace('_%color%_', $str_color, $html); として追加内容確認画面で _%color%_ として、チェックしたものを 赤,黄のように表示させて「ok」ボタンを押して phpでinsertするんですが、 mysql_query('insert into table1(name,color) values("'.$_post['name'].'","'.$_post['color'].'")'); としても空白のままです。nameはちゃんと入ってます。 テーブルは name varchar(50) color char(1) です。
回答: mysql_query('insert into table1(name,color) values("'.$_post['name'].'","'.$_post['color'].'")'); この記述部分の「$_post['color']」の中身の値について、コレは一つもチェックが入っていない場合は、空となり、何か一つでも値が入っていれば、配列となりますので、正常に値が取得できません。 なので、 implode(',', $_post['color']); とでもすれば値が挿入されたりしますが テーブルの設計上、colorフィールドは、1バイトしか値を挿入できませんので、それも出来ません。 設計自体がおかしいのだと思いますが、テーブルの設計と、フォームの設計のどちらが正しいのか、一度何をやりたいのかを確認して整理してはいかがでしょうか。