질문/조언질답게시판

<input type="hidden" name="email_address" value="" />

 

글 쓰고 난 이후가 아닌 글 작성 하면서 첫번째 사용자정의에서 이미 입력받은 email 주소를 자동으로 넣으려고 합니다.

 

사용자정의에 메일 주소를 넣고 개발자도구로 보면..

 

<input type="text" name="extra_vars1" value="메일@gmail.com" class="email_address">

 

이 상태로 입력을 해서 form 전송시 저 값으로 사용자정의 들어갑니다. 

 

위 타이핑 내용을 email_address input 의 값으로 자동으로 넣게 하고 있습니다.

 

 

어차피 한번 입력받은 이메일 주소로 자동으로 넣게 하고 비회원 글작성자의 이메일 입력을 별도로 받지 않도록 하려고 하는 목적이 있습니다.

  • profile

    예전에 비슷한걸로 사용자정의 1번의 내용을 제목으로 보냈던게있어요 글등록시점이긴한데...
    document.controller에서
    function insertDocument(
    내용안에

    if($obj->title == '') $obj->title = 'Untitled'; <----해당부분밑에
    // 확장변수에 제목을 입력 mid값 필수변경
    if((Context::get('category_srl') =='') && ((context::get('mid') == 'SG') || (context::get('mid') == 'romance') || (context::get('mid') == 'fantasy') || (context::get('mid') == 'CD') || (context::get('mid') == 'RT')))
    {
    $obj->extra_vars1 = $obj->document_srl;
    }
    이런식으로 넣은게있는데

    email부분을 찾아보니
    if(Context::get('is_logged') && !$manual_inserted && !$isRestore) 내용 안에
    $obj->email_address = $logged_info->email_address; 있어요 아마 웹지기님이시라면 로그인한상대를 대상일거고 특정 mid에서만 사용하실거같으니(?)
    if((Contet::get('mid') == '미드값')){
    $obj->extra_vars1 = $obj->email_address;
    }else{
    $obj->email_address = $logged_info->email_address;
    } 로 변경하시면 되지 않을까 싶어요

  • profile profile
    비회원이 작성할때 작성자 이메일을 넣는 input 이 있습니다.

    그런데 이미 사용자정의에서 이메일을 입력받고 있어 작성자 항목의 이메일을 두번 타이핑 하지 않고 이미 입력한 사용자정의 이메일 값을 가져오려고 합니다.

    게시글이 db에 들어가기 전이고 코어를 건드리지 않는 스크립트로 하고 싶어서요.
  • profile profile
    아하... 스크립트로 하시는거면 입력시 그대로 복사해서 입력하는걸로 넣어보시는건어떠신가요?
    https://datamod.tistory.com/89

    만약에 안되서 코어건드실거같으시면
    if(Context::get('is_logged') && !$manual_inserted && !$isRestore) 끝에
    elseif(!Context::get('is_logged') && Context::get('mid')=='미드값'){
    $obj->extra_vars1 = $obj->email_address;
    }
    이렇게 되지싶어요
  • profile profile
    타이핑 복사가 좀 애매한게 지금 복사할 대상이 hidden 속성으로 실제로는 보이지 않아서 이게 안먹을 것 같기도 하구요....

    사용자정의 input은 제가 임의로 id를 넣기 어려울 것 같습니다.
  • profile
    일단 구글링 중 가장 관심이 가는 부분 중

    var value = $('input[name=test_name]').val();

    이렇게 특정 input을 name 값으로 특정해서 가져올 수 있는 것 같습니다.
    이걸 어찌 다른 input 인 name 이 email_adress 의 vaule 로 집어 넣는 스크립트가 되면 될 것 같은데 구글링으로는 찾기 어렵네요.
  • profile
    복사대상을 input type='text'로 하시고 style="display:none"해서 감추시고 타이핑복사를 해보시는건 어떠세요?
  • profile

    submit시점에 잡아서 제이쿼리로 넣어주면 될꺼같습니다

    이메일 검증도 필요할꺼구요

  • profile profile
    그 것을 하려고 하는데 구글링해도 아직 마땅한 예제를 못찾고 있네요.
  • profile
    성공했습니다.

    <script>
    jQuery(function(){
    var formSubmit = xe.createPlugin("formSubmit", {
    API_BEFORE_VALIDATE : function(sender, params){
    var ext_value = $('input[name=extra_vars1]').val();
    $('input[name=email_address]').attr('value',ext_value);
    }
    });
    var oFormSubmit = new formSubmit();
    xe.getApp("Validator")[0].registerPlugin(oFormSubmit);
    });
    </script>



    기존에 폼전송시 사용했던 스크립트 중에 안쪽 내용만 바꿔서 시도하니 잘 되네요.
    물론 이 중 불필요한 부분이 있을 것 같지만 그래도 잘 되니 그냥 써도 될 것 같습니다.