Extra Form
PHP PHP 7.4
CMS Rhymix 2.1

안녕하세요.

 

제목 입력란을 아예 없에버리고

확장 변수 입력하면 제목란에 자동으로 기입되는 기능을 사용하려고 합니다. 검색을 해도 찾을 방법이 없어서

도움을 요청 드립니다.

 

감사드립니다.

  • profile
    모듈 또는 애드온으로 개발해야해요.

    관련해서 의뢰받아 만든 적 있습니다.
  • ?
    아니면
    스킨에서, 해당 사용자정의 출력 부분에 직접 onchange 를 넣어서 구현하셔도 되고
    jQuery 로 onchange 나 onclick 으로 외부에서 지정하실 수도 있고
    예를들어, radio 형태라면, https://jsfiddle.net/crp6em1z/ 이런걸 참조하셔도 되고..
  • ? profile
    답변 감사드립니다!
    onchange 기술로 글쓰기 단에서 제목폼을 바꿀 수 있는 기술이 있나보네요. 연구해보아야겠습니다.
    감사합니다.
  • ?
    sketchbook5 게시판스킨에 적용해 보았습니다.
    내용이 긴 관계로 링크 남깁니다.
    https://moonhouse.co.kr/xetip/578453
  • ? profile
    상세한 답변 대단히 감사합니다.
    근데 코드를 보면 실제로 db에 제목으로 들어가는것이 아닌 리스트와 글읽기화면에서 임시로 제목을 바꿔 주는게 아닐까요?
  • profile ?
    예 그렇죠
    디비로 치환까지는 아직 제 실력으로는 무리라서^.^
  • ? profile
    아무래도 검색엔진 노출등까지 고려해야하다보니

    ㅎㅎ 임시방편으로 db 까지는 아니더라도

    https://xe.conory.com/module_seopro
    이 자료를 조금 고쳐쓰면 제목 부분을 바꿀 수 있어서 이렇게 사용하겠습니다.도움주셔서 감사합니다.
  • ?
    <script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
    <script>
    $(document).ready(function() {
    var $title = $('input[name=title]');
    var $extra_vars1 = $('input[name=extra_vars1]');
    $extra_vars1.on('input', function() {
     $title.val($(this).val());
    });
    });
    </script>

     

    확장변수 1에 입력한 값을 제목에 자동적으로 넣어 주는 형태입니다. 제목부분에 input type 속성을 hidden으로 주고 사용하시면 될듯 하네요.

     

    제목으로 사용할 확장변수 번호를 확인해서 변경하시면 될듯 하네요.

    extra_vars1 이부분 을 수정.

     

  • ? profile
    답변 대단히 감사드립니다.니다.
    혹시 extra_vars1 . extra_vars2 이런식으로합치는 방법도 자바에서 있을까요?
  • profile ?
    <script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
    
    <script>
    $(document).ready(function() {
    
    var $title = $('input[name=title]');
    var $extraVar1 = $('input[name=extra_vars1]');
    var $extraVar2 = $('input[name=extra_vars2]');
    
    $extraVar1.on('input', function() {
    var val1 = $extraVar1.val();
    var val2 = $extraVar2.val();
    $title.val(val1 + val2);
    });
    
    $extraVar2.on('input', function() {
    var val1 = $extraVar1.val();
    var val2 = $extraVar2.val();
    $title.val(val1 + '-' + val2);
    });
    
    
    });
    </script>

     

    확장변수 1, 2 값을 문자열을 더해 제목에 넣는 형태입니다. 확장변수 1과 확장변수2를 더할때 구분자를  - 으로 넣어준 예입니다.

     

     

  • ? profile
    <script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>

    라이믹스에서 이미 jQuery를 불러오고 있으므로 이중으로 불러오면 문제가 생길 수 있습니다.
  • profile ?
    스케치북 글쓰기 폼에서 jqyery를 불러오지 않았을때 작동을 안해서 넣어준건데...
    더 나은 방법이 있을가요?
  • ? profile
    jQuery는 공통 스크립트로 일반적인 방법으로는 언로드할수 없는 스크립트입니다. 애초에 코어의 많은 기능이 jQuery에 의존하고 있고요. 코드가 동작하지 않는다면 해당 문제점을 수정하셔야지 무작정 jQuery를 이중으로 불러오면 그냥 문제를 덮는 조치일뿐 제대로된 코드라고 볼 수 없습니다.
  • profile ?
    <script>
    jQuery(function($) {
    var $title = $('input[name=title]');
    var $extraVar1 = $('input[name=extra_vars1]');
    var $extraVar2 = $('input[name=extra_vars2]');
     
    $extraVar1.on('input', function() {
    var val1 = $extraVar1.val();
    var val2 = $extraVar2.val();
    $title.val(val1 + val2);
    });
     
    $extraVar2.on('input', function() {
    var val1 = $extraVar1.val();
    var val2 = $extraVar2.val();
    $title.val(val1 + '-' + val2);
    });
      });
    </script>

     

    jquery 로드 없이 이렇게 하니 되네요.. 좋은 지적 감사합니다. 

  • profile profile
    다행히 제이쿼리 2. 대 버전 에서도 지원이 되나보네요!!
  • ? profile

    요즘 외근으로 테스트를 못해보네요 ㅠㅠ
    저녁되어야 테스트 가능하겠네요!! 감사합니다. 잘사용하겠습니다.

    추가 궁금증이 있는데
    해보지는 않았지만 title 적는 부분을 readonly 나 disabled로 해주면될까요?
    아니면 input 박스를 아예 제거 해버리거나 0px로 숨겨야할까요?

     

    죄송합니다. 첫 댓글에

     

    "제목부분에 input type 속성을 hidden으로 주고 사용하시면 될듯 하네요."

     

    라고 적힌것 확인하였습니다. 감사합니다.

  • ? profile
    네. 이전에 오류 사례들중 빈번하게 발생했던것이 레이아웃, 위젯 등에서 임의로 jQuery를 이중 로드하여 코어에서 추가한 jQuery 함수가 사라지는바람에 발생한 오류라 댓글 달았습니다. jQuery 2.x 버전이 오래된 버전이긴 하나 대부분의 함수는 2.x에서도 정상 동작합니다.

    참고로 최신 개발버전 사용중인경우 설정에서 jQuery 3.x 사용을 선택할수도 있지만 이경우 코어내 기능도 오동작할수 있습니다.
  • ? profile
    최근 라이믹스라면 PC, 모바일, 어떤 레이아웃이나 스킨이든 상관없이 모든 화면에서 무조건 jQuery를 불러옵니다. 만약 안 불러오는 화면이 있다면 심각한 버그이니 제보 부탁드립니다.
  • profile profile
    $ 변수를 const로 선언해서 어느 누구도 덮어쓸 수 없도록 막아버릴까 생각중입니다...
  • profile ?
    아..제가 테스트한 사이트가 하필이면 XE로 제작한 사이트였네요.
    라이믹스로 제작된 사이트에서 테스트해보니 jQuery 추가로 안불러와도 작동을 하네요.
    귀한 댓글 감사합니다.
  • ? ?
    좋은 팁 감사합니다.
    재가 작성한 팁보다 엄청 진보한 팁 입니다.👍

    한가지 질문이 있는데요.
    위의 팁대로 하면 한줄 입력칸, URL 형식, 단일 선택, 이메일 형식 같은 경우는 적용이 잘 됩니다.
    근데 일자, 전화번호, 주소등은 적용이 안되네요.
    혹시 이런 확장변수들도 적용가능한 방법이 있는지요?
  • ? ?
    날짜 같은 경우 클릭시 datepicker 값을 받아 입력되는 형태라 제가 제시한 형태로는 처리가 되지 않을겁니다.
    주소창도 비슷하겠네요.
    제목에 넣는 값으로 날짜나 전화번호,주소형태는 고려 대상이 아닐거라 생각하고 작성한 코드라.
    고급기술은 다른고수님들이 답변을 좀...