簡體   English   中英

PHP:在一個元素上回顯類會影響循環回顯的所有元素

[英]PHP: Echoing class on one element effects all elements echoed by loop

我有一個回顯一些元素的循環。 我也有一個if語句,如果它包含來自數據庫的某個字符串,則將復選框'checked'屬性應用於復選框元素,例如:

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>"

我懷疑問題出在您的循環中,但是我會嘗試在邏輯之前聲明變量。

這樣可以確保每次清除它們:

$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。

(我會發表評論,但是我沒有足夠的聲譽。)

無論如何,您是否有這個理由:

$div1 ="class='green'";
$div2 ="class='green'";

當兩個變量具有相同的值時,所有類都將看起來相同。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM