2016-09-14 6 views
0

의 내가 드루팔의 콘텐츠 형식에 드루팔 세 필드 시스템 이름을 가지고 있다고 가정 해 봅시다 :Drupal에서 JavaScript를 사용하여 노드 필드에서 값을 읽거나 가져 오는 방법은 무엇입니까?

company_color_schema, company_logocompany_some_picture

나는 나에게 일반 텍스트 16 진수 색상 코드를 제공합니다 company_color_schema를 검색하고 싶습니다 JavaScript를 사용하여 div 배경색으로 사용할 수 있습니다.

JavaScript를 사용하여이 값에 액세스하는 방법이 있습니까? 사용 가능한 문서를 살펴 보았지만 아무 것도 다루지 않습니다.

답변

0

이렇게 할 수있는 한 가지 방법은 최소한 뷰 템플릿 파일에 JavaScript 코드를 배치하는 것입니다. 그럼이 같은 자바 스크립트 행을 가정 해 봅시다 :

<?php $value_you_get_from_php = ... ; ?> 

    <script> 
     var bcgColor = <?php echo $value_you_get_from_php; ?>; 
    </script> 

그래서 당신은 PHP에서 색상 필드의 가치를 정확하게 당신이 당신의 자바 스크립트 변수 값을 정의 된 위치에서, 인라인 자바 스크립트 코드 내부에 그것을 밖으로 인쇄 할 수 있습니다. 그런 다음 필요에 따라 자바 스크립트 변수를 사용할 수 있습니다.

또 다른 방법은 매개 변수로 노드 ID를 사용하여 Ajax 호출을 작성하는 것이지만, 허용되는 경우 첫 번째 옵션이 더 쉽습니다.

또는 가장 쉬운 해결책 (Artreaktor의 답변에서 영감을 얻음) : 템플릿 파일에서 직접 색상을 촬영하십시오. style 태그 속성을 추가하고 그로부터 색상을 설정하십시오. Artreaktor의 해결책은 더 많은 규칙 일 수 있지만, 구현하기가 더 쉽습니다.

0

이 경우 drupalSettings을 사용해야합니다.

당신은 당신의 요구에 사실

에 따라 hook_node_view 또는 유사에 첨부 할 수 있습니다, 당신은 DIV 배경을 설정할 자바 스크립트가 필요하지 않습니다.

mymodule_preprocess_node(&$vars) { 
    $vars['background'] = $vars['node'][WHATEVER_VALUE]; 
} 

모듈, 캐시 지우기에이 코드를 넣어 다음 당신이 당신의 node.tpl.php

$background 변수를 사용할 수 있습니다 : 더 나은 방법은 hook_preprocess_HOOK을 사용하는 것입니다