Php изменит цвет фона на другое значение

Так что у меня есть этот код, который создает SELECT в FORM, мне было интересно, как я могу добавить его к другому цвету фона, когда значение $ отличается.

Пожалуйста, имейте в виду, что $value не всегда является одним и тем же текстом и может измениться.

PHP-код:

<div><select name="fields['.base64_encode('Itinerary - Days').']">
 <option value="">--- Select Deck & Itinerary ---</option>';

foreach($main_title_array as $key => $value): 
$f.= '<option value="'.$value.'">'.$value.' / '.$type_array[$key].'</option>';
endforeach;

$f.='</select></div>';

РЕЗУЛЬТАТ:

<select name="fields[SXRpbmVyYXJ5IC0gRGF5cw==]">
 <option value="">--- Select Deck & Itinerary ---</option>
 <option value="Lower Deck">Lower Deck / Discovery Itin 4D – 3N</option>
 <option value="Lower Deck">Lower Deck / Discovery Itin 5D – 4N</option>
 <option value="Lower Deck">Lower Deck / Discovery Itin 8D – 7N</option>
 <option value="Main Deck">Main Deck / Discovery Itin 4D – 3N</option>
 <option value="Main Deck">Main Deck / Discovery Itin 5D – 4N</option>
 <option value="Main Deck">Main Deck / Discovery Itin 8D – 7N</option>
 <option value="Upper Deck">Upper Deck / Discovery Itin 4D – 3N</option>
 <option value="Upper Deck">Upper Deck / Discovery Itin 5D – 4N</option>
 <option value="Upper Deck">Upper Deck / Discovery Itin 8D – 7N</option>
 </select>

ХОТИТЕ РЕЗУЛЬТАТ:

<select name="fields[SXRpbmVyYXJ5IC0gRGF5cw==]">
 <option value="">--- Select Deck & Itinerary ---</option>
 <option value="Lower Deck">Lower Deck / Discovery Itin 4D – 3N</option>
 <option value="Lower Deck" "="">Lower Deck / Discovery Itin 5D – 4N</option>
 <option value="Lower Deck" "="">Lower Deck / Discovery Itin 8D – 7N</option>
 <option value="Main Deck">Main Deck / Discovery Itin 4D – 3N</option>
 <option value="Main Deck">Main Deck / Discovery Itin 5D – 4N</option>
 <option value="Main Deck">Main Deck / Discovery Itin 8D – 7N</option>
 <option value="Upper Deck">Upper Deck / Discovery Itin 4D – 3N</option>
 <option value="Upper Deck">Upper Deck / Discovery Itin 5D – 4N</option>
 <option value="Upper Deck">Upper Deck / Discovery Itin 8D – 7N</option>
</select>
4 ответа

Попробуйте это решение

// List of colors
$colors = array('red', 'white', 'black','blue');

//The lenght of the colors available
$lenght_colors = count($colors);

//store last deck
$last_deck = null;

//Counters
$count = 0;

// Avoid warnings
$f = null;

foreach($main_title_array as $key => $value)
{
 // Switch colors
 if($last_deck != $value)
 {
 // Check if you reached the limit of colors available if yes reset the count
 if($count != $lenght_colors)
 {
 $count++;
 }
 else
 {
 $count = 0;
 }
 }

 $f .= '<option value="'.$value.'">'.$value.' / '.$type_array[$key].'</option>';
 $last_deck = $value;
}


Попробуй это

// Decks Color
$decks_color = array('Lower Deck' => 'red', 'Main Deck' => 'white', 'Upper Deck' => 'black');

// Avoid warnings
$f = null;

foreach($main_title_array as $key => $value)
{
 $f .= '<option value="'.$value.'">'.$value.' / '.$type_array[$key].'</option>';
}


$f.= "<option .[your"="" value="" variable]."="">".$value
/$type_array[$key]."</option>";

Лично охватывать все не-php с помощью "" вместо "" проще в обслуживании. Также использование '' в стороне не-php для обработки HTML.

Ваш код не дает никакого значения для "background-color". Кажется, вы забыли переменную после "background-color" и вместо этого перешли к свойству value.


Я не проверял это, но вот суть...

Вам нужно создать массив цветов, а затем в вашем цикле проверить, изменилось ли значение. Если он есть, увеличьте индекс, установите цветную переменную и продолжайте движение...

<!--?
$valCheck = "";
$colors = array('red', 'white', '#023');
$count = 0;
$color = $colors[$count];

foreach($main_title_array as $key =--> $value): 

 if($valCheck != $value){
 $color = $colors[$count];
 $valCheck = $value;
 $count++;
 }
 $f.= '<option value="'.$value.'">'.$value.' / '.$type_array[$key].'</option>';

endforeach;

licensed under cc by-sa 3.0 with attribution.