2016-06-02 1 views
1

질문이 있습니다.symfony2에서 CSS를 CSS 작성에 넣습니다.

<option value="1"><div style="background-color:rgb(174,252,202)">Green</div></option> 
<option value="2"><div style="background-color:rgb(12,2,43)">Red</div></option> 

그래서 배경 색상이 해석되지 않습니다 형태로이 같은 선택 상자를 얻을 수 있기 때문에,

public function buildForm(FormBuilderInterface $builder, array $options) 
{ 
    $aColors = array(); 
    foreach(Colors::$aNewsColors as $k=>$v){ 
     $aColors['<div style="background-color:'.$v['textCategoryColor'].'">'.$v['name'].'</div>'] = $k; 
    } 
    $builder 
     ->add('title', TextType::class) 
     ->add('image',FileType::class, array('data_class' => null)) 
     ->add('document',FileType::class, array('data_class' => null)) 
     ->add('content',TextareaType::class) 
     ->add('color_id',ChoiceType::class, array('choices' => $aColors,'choices_as_values' => true)) 
     ->add('is_top_news',CheckboxType::class) 
     ->add('has_gallery',CheckboxType::class) 
     ->add('save',SubmitType::class, array('label'=> 'Save')) 
    ; 
} 

문제는이 color_id에 있습니다 그래서이 양식을 가지고있다. 도와 줄수있으세요 ?

+0

Symfony는 선택 상자 만 생성합니다. 이러한 스타일을 재정의하려면 javascript를 사용해야합니다. [Select2] (https://select2.github.io/)와 같은 것을 권합니다. – LMS94

답변

1

먼저 일을 example.html.twig. <div>(<option>)에 배경색이 설정되어 있기 때문에 배경색이 브라우저에서 해석되지 않습니다.

그렇다고해서 다른 사람들과 동의하면 자바 스크립트 라이브러리을 사용해야합니다. <select> 태그를 사용하면 꼭 눈에 띄지 않을 수 있습니다.

하지만 질문에 대한 답변이이어야하며, 자바 스크립트 라이브러리를 사용한다고해도 내가 제안하는 방법이 도움이 될 것입니다.

실제로 'choice_attr'이해야

$aColors = array(); 
$choiceAttr = array(); 
foreach(Colors::$aNewsColors as $k=>$v){ 
    $aColors[$v['name']]=$k; 
    $choiceAttr[$v['name']]=array(
     'style'=>'background-color: ' . $v['textCategoryColor']. ';', 
    ); 
} 
$builder 
    ->add('title', TextType::class) 
    ->add('image',FileType::class, array('data_class' => null)) 
    ->add('document',FileType::class, array('data_class' => null)) 
    ->add('content',TextareaType::class) 
    ->add('color_id',ChoiceType::class, array(
     'choices' => $aColors, 
     'choices_as_values' => true, 
     'choice_attr'=>$choiceAttr, 
    )) 
    ->add('is_top_news',CheckboxType::class) 
    ->add('has_gallery',CheckboxType::class) 
    ->add('save',SubmitType::class, array('label'=> 'Save')) 
; 

출력

<option value="1" style="background-color:rgb(174,252,202);">Green</option> 
<option value="2" style="background-color:rgb(12,2,43);">Red</option> 

그리고 당신은 자바 스크립트 라이브러리에 대한 이동하기로 결정하면, 당신이하지를 사용합니다, 귀하의 질문에 대답하려면 'choice_attr'에 "스타일"을 설정하는 것으로 제한됩니다. "style"속성 외에도 'class_attribute'를 설정하기 위해 'choice_attr'을 사용할 수 있습니다 (예 : 'data-color-value').

+0

Thx ... it 's works –

0

js를 사용해야합니다.

나는 당신이 루프 사업부를 할 수 있고 당신이 값을 복구 선택을 클릭하면 (JS 팀에게

를 필요한 정보 (ID, 색상 ...)와 데이터 컬러 속성을 제공하고 검색 생각하는 ID입니다) 그리고 당신은 물론 데이터 속성의 모든 div 요소와 ID를 찾으십시오. 보기에서


먼저

{% for color in textCategoryColors %} 
    <div data-color="{color | json_encode}"></div> 
{% endfor %}