자유게시판

인트라넷 디버깅 : 첩약건강보험 처방을 <기존처방>에서 불러 들어오면, 체크를 켜주려고 합니다.

작성자 정보

  • 삼둡 작성
  • 작성일

컨텐츠 정보

본문

rx_made.php 에서 기존처방을 뿌리는데

 

echo "() {";

       echo "opener.document.prescript.cc.value='" ; echo $array[cc] ; echo "'; \n";

       echo "opener.document.prescript.pack.value='" ; echo $array[pack] ; echo "'; \n";

       echo "opener.document.prescript.ch.value='" ; echo $array[ch] ; echo "'; \n";

       echo "opener.document.prescript.howto.value='"; echo $array[howto] ; echo "'; \n";
       echo "opener.document.prescript.comment.value='"; echo $array[comment] ; echo "'; \n";
 

 

이런 식으로 처방을 선택하면

불려진 창의 적당한 값을 때려 넣는 자바스크립트를 프린트 해서 작동하게 합니다.

 

db79029e86bc37dad8acbfde6980fe31b2188d06ej9s.png

<input type=checkbox name=receipt tabindex=127 value=1 checked disabled>

첩건

<input type=checkbox name=chch tabindex=128 value=1>

 

첩건은 그러니까

opener.document.prescript.chch.value 정되 되겠네

 

근데 값을 주는게 아니라

체크 언체크로 값을 넘기려면 어떻게 해야하나

 

웹에서 php와 자바스크립트로 구현하고 있어. 처방을 입력하는 프로그램인데, 과거 처방을 불러오기 버튼을 누르면 db에서 추출해서 과거의 처방을 보여줘. 그것은 새 창을 띄워서 보내주지, 그러면 사용자는 처방을 선택하면 여러 가지 값이 "opener.document.prescript.chch.value="의 방식으로 처음 윈도우에 반영하게 하고 있어. 값은 그렇게 넘겨주면 되는데 체크 박스는 어떻게 해야할까?

 

ChatGPT의 말:

좋은 질문이에요! opener.document를 통해 부모 창의 요소를 조작하는 방식은 올바른 접근이고, 체크박스도 같은 방식으로 제어할 수 있어요. 체크박스의 checked 속성을 조작하면 됩니다.

예를 들어, 부모 창(처방 입력 폼)에 다음과 같은 체크박스가 있다고 가정합시다:

html

복사편집

<input type="checkbox" name="symptom1" id="symptom1">

자식 창(과거 처방 선택 창)에서 이 체크박스를 체크하거나 해제하고 싶다면 JavaScript로 다음과 같이 할 수 있어요:

체크박스 체크하기

javascript

복사편집

opener.document.getElementById('symptom1').checked = true;

체크박스 체크 해제하기

javascript

복사편집

opener.document.getElementById('symptom1').checked = false;

체크 상태를 토글하고 싶다면:

javascript

복사편집

let checkbox = opener.document.getElementById('symptom1'); checkbox.checked = !checkbox.checked;

체크박스가 여러 개 있는 경우

예를 들어 symptom[]처럼 name 속성으로 배열을 구성했다면:

html

복사편집

<input type="checkbox" name="symptom[]" value="cough" id="symptom_cough"> <input type="checkbox" name="symptom[]" value="fever" id="symptom_fever">

자식 창에서 특정 항목만 체크하려면 id나 value 값을 기준으로 개별 접근하면 됩니다:

javascript

복사편집

opener.document.getElementById('symptom_cough').checked = true;

또는 getElementsByName으로 배열을 전부 가져와서 반복 처리도 가능하죠:

javascript

복사편집

let symptoms = opener.document.getElementsByName('symptom[]'); for (let i = 0; i < symptoms.length; i++) {    if (symptoms[i].value === 'cough') {        symptoms[i].checked = true;    } }

필요하다면, 체크할 항목들을 배열로 넘겨서 루프로 처리하는 것도 가능해요. 어떤 식으로 데이터를 전달하고 체크할지 더 구체적인 예가 있으면 그걸 기반으로 코드도 짜줄 수 있어요. :)

 

 

        if ($array[chch]) {
       echo "opener.document.prescript.getElementById('chch').cheked = true;";
       }
 

 

==>

opener.document.getElementById('chch').cheked = true;

관련자료

댓글 0
등록된 댓글이 없습니다.

인기검색어


최근글


새댓글