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

sizen.csvというファイルがあります。
中身は
-----
umi,海
yama,山
mizuumi,湖
ike,池
mura,村
-----
です。
このcsvファイルをsizen.phpに読込んで
ラジオボタン使用の設問を作りたいと思っております。

プログラムは・・・
<form action="area.php" method="POST">
<?php
$file=file("sizen.csv");
for($i=0;$file[$i];$i++){
$data=explode(",",$file[$i]);
echo"<input type='radio' name='sizen' value='".$data[0]."'>";
echo"$data[1]<br>";
}
?>
<input type="submit" value="次へ">
とできたのですが、チェックがついていません。

先頭にチェックボタン(今回の場合は海の選択肢に最初からチェックを付けたい)を付けたいのですが、どういう方法があるのでしょうか?

if文を使って
<form action="area.php" method="POST">
<?php
$file=file("sizen.csv");
for($i=0;$file[$i];$i++){
$data=explode(",",$file[$i]);
if($data[0]==umi){
echo"<input type='radio' checked name='sizen' value='".$data[0]."' >";
echo"$data[1]<br>";
}else{
echo"<input type='radio' name='sizen' value='".$data[0]."'>";
echo"$data[1]<br>";
}
}
?>
<input type="submit" value="次へ">
とすればできるのですが、
sizen.csvファイルの中身をよく変える為、
if($data[0]==umi){・・・・
という風に、$data[0]==umiのように固定はできません。
この方法を使わずに、ラジオボタンのチェックを
いつも選択肢の先頭に付けるにはどのような方法があるのでしょうか?


よろしくお願いします。

A 回答 (2件)

if($data[0]) == umi)


を if($i==0) というやりかたでは駄目ですか?
この場合、例えばyama が一番上にきたときは yama にchecked がつきます。

質問の意味が違ったらすみません。
    • good
    • 0

せんとうにつけるのであれば、カウンタをつけて、0のときにcheckedを


つけ、それ以外の時は消せばよいでしょう。

こんな感じ

<form action="area.php" method="POST">
<?php
$handle = fopen("sizen.csv", "r");
$row=0;
while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) {
$checked=$row==0?" checked":"";
print <<<eof
<input type='radio' name='sizen' value='{$data[0]}'{$checked}>{$data[1]}<br>

eof;
$row++;
}
?>
<input type="submit" value="次へ">
    • good
    • 0

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