안녕하세요?

Rhymix를 감사하게 잘 사용중인 프로그래머도 웹디자이너도 아니고 일반 사용자입니다.

 

sketchbool5Rhymix 스킨을 사용하는 게시판에 확장변수 2개(m_ext_ids,m_ext_names)를 생성하고 같은 DB내에 별도로 생성된 Table에서 ID와 이름을 찾아 생성된 확장변수에 넣고 싶습니다.

 

다른 테이블의 내용을 찾아 최종적으로 input_names() 로 입력하면 게시판 화면에는 입럭되지 않고 있어서 어떤 부분이 잘못 되어 있는 지 답답하네요.... 혹시 게시판 모듈이나 스킨에서 입력을 방지하고 있지는 않는지 궁금합니다.

 

크롬 개발자도구의 콘솔에서 스크립트 오류는 발생하지 않고 있습니다.

 

<!-- sketchbool5Rhymix 스킨의 write_form.html -->
<table cond="count($extra_keys)" class="et_vars exForm bd_tb">
    <caption><strong><em>*</em></strong> <small>: {$lang->is_required}</small></caption>
    <tr loop="$extra_keys=>$key,$val">
        <th scope="row"><em cond="$val->is_required=='Y'">*</em> {$val->name}</th>
        <td>{$val->getFormHTML()} <input type="button" value="이름과 ID검색" onclick="find_names();return false" class="bd_btn m_no" /></td>
    </tr>
</table>
<!-- sketchbool5Rhymix 스킨의 write_form.html -->

<!-- write_form.html 의 화면 표시내용 -->
<input type="text" class="text rx_ev_text itx" name="extra_vars1" value="">
<input type="text" class="text rx_ev_text itx" name="extra_vars2" value="">
<input type="button" value="이름과 ID검색" onclick="find_names(); return false">

<script type="text/javascript">
function find_names() {
    var jURL = "./find_names.php";
    var vlength = screen.height - 50;
    var windowprops = "height=" + vlength + ",width=550,location=no,scrollbars,status,resizable=yes";
    window.open(jURL, "FindNames", windowprops);
}
</script>
<!-- write_form.html 의 화면 표시내용 -->


<!-- find_names.php -->
<form action="/">
    <!-- 이름과 ID를 찾아 selected_ids 및 selecteds_names에 입력하는 폼 -->
</form>

<input type="text" id="selected_ids" name="selected_ids" class="form-control">
<input type="text" id="selected_names" name="selected_names" class="form-control">
<a href="javascript:;" onclick="input_names();" class="btn btn-primary" role="button"> 이름입력 </a>

<script type="text/javascript">
function input_names() {
    var ids = document.getElementById('selected_ids').value;
    var names = document.getElementById('selected_names').value;

    window.opener.document.getElementsByName('extra_vars1').value = names;
    window.opener.document.getElementsByName('extra_vars2').value = ids;
}
</script>
<!-- find_names.php -->

 

  • profile

    getElementsByName 함수는 "Elements"에서 알 수 있듯이 기본적으로 여러 요소를 반환하는 함수입니다.

    즉 name이 지정한 값인 요소가 단 하나더라도 배열 형태로 반환되므로 window.opener.document.getElementsByName('extra_vars1')[0]와 같이 사용하셔야 합니다.

     

    다른 코드에 문제가 없다는 전제하에 위 부분만 수정되면 동작할것으로 보입니다.

  • profile profile
    친절한 답변 감사드립니다.
    덕분에 해결이 되었습니다.
    감사합니다.