0

いくつかの要素をエコーするループがあります。データベースからの特定の文字列が含まれている場合、チェックボックスの「checked」属性をチェックボックス要素に適用するifステートメントもあります。

if ($team ==  $row['team1']) {
  $checked1 = "checked='checked'";
}
else {
  $checked1 = "";
}
if ($team ==  $row['team2']) {
  $checked2 = "checked='checked'";
}
else {
  $checked2 = "";
}

echo "<div><input type='radio' name='games" . $i . "' value='" . $row['team1'] . "' " . $checked1 . "></div>";
echo "<div><input type='radio' name='games" . $i . "' value='" . $row['team2'] . "' " . $checked2 . "></div>";

これはうまくいくようです。しかし、チェックボックスを囲む div にもクラスを追加したいと思います。

if ($team ==  $row['team1']) {
  $checked1 = "checked='checked'";
  $div1 = "class='green'";
}
else {
  $checked1 = "";
  $div1 = "";
}
if ($team ==  $row['team2']) {
  $checked2 = "checked='checked'";
  $div2 = "class='green'";
}
else {
  $checked2 = "";
  $div2 = "";
}

echo "<div " . $div1 . "><input type='radio' name='games" . $i . "' value='" . $row['team1'] . "' " . $checked1 . "></div>";
echo "<div " . $div2 . "><input type='radio' name='games" . $i . "' value='" . $row['team2'] . "' " . $checked2 . "></div>";

問題は、クラスがループによって生成されたすべての div に無差別に適用されているように見えることです。これは、要素のループとエコーアウトの副産物として発生するものですか? これを達成するためのより良い方法はありますか (おそらく JQuery を使用)。

編集: HTML の結果を追加

<div class='green'><input  type='radio' name='games1' value='myteam' checked='checked'></div>"
<div><input type='radio' name='games1' value='yourteam' ></div>

<div class='green'><input  type='radio' name='games1' value='myteam' ></div>"
<div><input type='radio' name='games1' value='yourteam' checked='checked'></div>

<div class='green'><input  type='radio' name='games1' value='myteam' ></div>"
<div><input type='radio' name='games1' value='yourteam' checked='checked'></div>

<div class='green'><input  type='radio' name='games1' value='myteam' checked='checked'></div>"
<div><input type='radio' name='games1' value='yourteam' ></div>"
4

2 に答える 2

1

問題はループにあると思われますが、ロジックの前に変数を宣言しようとします。

これにより、毎回確実にクリアされます。

$checked1 = "";
$div1 = "";
$checked2 = "";
$div2 = "";

if ($team ==  $row['team1']) {
  $checked1 = ' checked="checked"';
  $div1 = ' class="green"';
}

if ($team ==  $row['team2']) {
  $checked2 = ' checked="checked"';
  $div2 = ' class="green"';
}

echo '<div' . $div1 . '><input type="radio" name="games' . $i . '" value="' . $row['team1'] . '"' . $checked1 . '></div>';
echo '<div' . $div2 . '><input type="radio" name="games' . $i . '" value="' . $row['team2'] . '"' . $checked2 . '></div>';

また、$teamが空の場合、および$row[team1]が空の場合、true と評価されます。

于 2013-03-08T00:56:56.860 に答える