dポイントプレゼントキャンペーン実施中!

こちらの作成掲示板を使用させていただいているのですが。
http://www.big.or.jp/~t-shun/trpg/trpg_cgi/diceb …

何度か続けて、同じ種族で作成する場合、一回ずつ選択しないですむようにできないか、と思いまして、

## --- クッキーの発行
$cook="name\:$name\,email\:$email\,url\:$url\,pwd\:$pwd, ※dcheck\:$dcheck";

## --- クッキーを取得
$c_name = $COOKIE{'name'};
$c_email = $COOKIE{'email'};
$c_url = $COOKIE{'url'};
$c_pwd = $COOKIE{'pwd'};
※$c_dcheck = $COOKIE{'dcheck'};


if ($FORM{'cook'} eq 'on') {
if ($name) { $c_name = $name; }
if ($email) { $c_email = $email; }
if ($url) { $c_url = $url; }
if ($pwd) { $c_pwd = $pwd; }
※ if ($dcheck) { $dcheck = $dcheck;}

※部分を追記しました。
最初に選んだ種族の複数作成はうまくできたのですが、
別種族を選択した際に、一度別種族で作成した後、前に選んだ種族にチェックが入ってしまいました。
これを前に選んだ種族に戻さないようにするには、どのような方法があるのか、教えていただきたいのです。

A 回答 (1件)

> $c_dcheck = $COOKIE{'dcheck'};


$c_dcheck はどこに使っていますか。

> if ($dcheck) { $dcheck = $dcheck;}
この if文には意味がありません。

>最初に選んだ種族の複数作成はうまくできたのですが、
>別種族を選択した際に、一度別種族で作成した後、前に選んだ種族にチェックが入ってしまいました。
前に選んだ種族にチェックが入ってしまうというのは思い違いではありませんか。
サンプルでは 無条件で「人間」が選択されるようになっています。

クッキーで取得した「$c_dcheck」をフォームに反映させるには該当の radio タグに 'checked' を付ける必要があります。
次のようにすればよいでしょう。
(1)タグの出力部分を次のように修正します。
人間<input type="radio" name="dcheck" value="1"$chk1>
エルフ<input type="radio" name="dcheck" value="2"$chk2>
ハーフエルフ<input type="radio" name="dcheck" value="3"$chk3>
ドワーフ<input type="radio" name="dcheck" value="4"$chk4>
グラスランナー<input type="radio" name="dcheck" value="5"$chk5>

(2)クッキーを取得し、$c_dcheck に代入した後に次の1行を挿入します。
if($c_dcheck){${"chk$c_dcheck"}=' checked'}
    • good
    • 0
この回答へのお礼

ありがとうございます。無事にできました。

勘違いと言われた部分なのですが。
$selected{$c_dcheck} = 'checked';

<input type=radio name=dcheck value="1" $selected{'1'}> 

としていたことを書いておりませんでした。情報が足りず申し訳ありません。
この場合ですと、最初に言った現象になってしまいまして、困っておりました。

本当にありがとうございました。

お礼日時:2008/10/13 23:42

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!