룰렛 이벤트 결과를 게시판에 자동으로 작성하고 싶습니다.

룰렛 이벤트 결과를 게시판에 자동으로 작성하고 싶습니다.

QA

룰렛 이벤트 결과를 게시판에 자동으로 작성하고 싶습니다.

본문

룰렛페이지 결과를 게시판과 연결해서

룰렛 결과를 게시판 제목으로 게시글을 등록하려고 합니다.

 

회원 여부와 중복참여 구분은 게시글 작성 권한과 게시글 최대 작성 수로 진행할 계획인데,

 

룰렛페이지에서 게시판으로 결과를 넘기는게 문제네요 ㅠ

 



require([
    "App",
], function( App ) {
    var _btnStart;
    var _roll_bg;
    var _items;
    var _mTime;
    function init()
    {
        create();
        addEvent();
    }
    function create()
    {
        _btnStart = $( ".btn_start" );
        _roll_bg = $( ".roll_bg" );
        _items = [ "포인트 30P", "할인쿠폰 10%", "무료반품 FREE", "할인쿠폰 30%", "선물쿠폰 1+1", "할인쿠폰 20%", "더블적립 x2", "결제금액 100% 페이백" ];
        _mTime = 1;
    }
    function addEvent()
    {
        _btnStart.on( "click", btnStartClick );
    }
    function btnStartClick( $e )
    {
        spinMotion();
    }
    var _count = 0;
    //움직이는 모션
    function spinMotion()
    {
        TweenMax.to( _roll_bg, _mTime, { rotation:360,    ease:Power0.easeInOut, onComplete:function(){
            TweenMax.set(  _roll_bg, { rotation:0 });
            _count ++;
            if( _count > 0 ){
                randomValue();
                return;
            }
            spinMotion();
        }});
    }
    //결과값 추출
    function randomValue(){
        var ran = parseInt( Math.random() * _items.length );
        angleCount( ran );
    }
    //결과값 맞게 움직이는 모션
    function angleCount( $ran )
    {
        TweenMax.killTweensOf( _roll_bg );
        TweenMax.set( _roll_bg, { rotation:0 });
        var angle =  360 / _items.length;
        TweenMax.to( _roll_bg, _mTime, { rotation: $ran * angle  , ease:Power0.easeInOut, onComplete:function(){
            alert( _items[ $ran ] +  " 당첨 되었습니다"  );
        }});
    }
    $( document ).ready( function(){
        init();
    });

});

 

_items[ $ran ] <- 요 결과값으로 게시글이 자동으로 작성될 방법이 있을까요?

요 소스코드 파일이 .js 확장자라 

alert 부분을 아래와 같이


function angleCount( $ran )
    {
        TweenMax.killTweensOf( _roll_bg );
        TweenMax.set( _roll_bg, { rotation:0 });
        var angle =  360 / _items.length;
        TweenMax.to( _roll_bg, _mTime, { rotation: $ran * angle  , ease:Power0.easeInOut, onComplete:function(){
          $.ajax({
       type: "POST",
       url: "./post.php",
       async : true,
       data: {
         "wr_subject": _items[ $ran ]
     },
       dataType: 'html',
       success: function(data){
           if(data=='success'){
             alert( _items[ $ran ] +  " 당첨 되었습니다");
           }else{
             alert('실패');
           }
       }
   });
        }});
    }

 

이런식으로 post.php에 넘겨주고,

 

post.php에선 이런식으로 작성을 하는건지.. 

영 감이 안잡힙니다..


<?php
define('_INDEX_', true);
if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가
include_once(G5_PATH.'/head.php');
$keystring = uniqid();
set_session("ss_captcha_count", 0);
set_session("ss_captcha_key", $keystring);
$captcha_key = $_POST['captcha_key'] = get_session('ss_captcha_key');
?>
<?$subject=$_POST['wr_subject']; ?>
<input type="hidden" name="uid" value="<?php echo get_uniqid(); ?>" id="uid">
<input type="hidden" name="w" value="<?php echo $w ?>" id="w">
<input type="hidden" name="bo_table" value="test" id="bo_table">
<input type="hidden" name="wr_id" value="<?php echo $wr_id ?>"  id="wr_id">
<input type="hidden" name="wr_subject" value="<?php echo $subject ?>" id="wr_subject">
<script>
    var token = f.token.value;
        var uid = "uid="+$("#uid").val();
        var w = "w="+$("#w").val();
        var bo_table = "bo_table="+$("#bo_table").val();
        var wr_id = "wr_id="+$("#wr_id").val();
        var wr_subject = "wr_subject="+$("#wr_subject").val();

    $.ajax({
            url: g5_bbs_url+"/write_update.php",
            type: "POST",
            data: {
                "ajax_write": 'y',
                "token": fwrite.token.value,
                "uid": fwrite.uid.value,
                "w": fwrite.w.value,
                "bo_table": fwrite.bo_table.value,
                "wr_id": fwrite.wr_id.value,
                "wr_subject": fwrite.wr_subject.value,
            },
            dataType: "text",
            error: function(xhr, status, error){
                alert(error);
            },
            async: false,
            cache: false,
            success : function(data){
                if(data=='success'){
                    alert('등록되었습니다.');
                }else{
                    alert('실패');
                }
                $("#fwrite")[0].reset();
            }
        });
    }
/*
$(function() {
    $('.btn_submit').click(function(){

    });
});
*/
</script>
<?php
include_once(G5_PATH.'/tail.php');
?>

 

이 질문에 댓글 쓰기 :

답변 2

음... 쉽게 간단하게 생각해봅시다!! 우선

_items[$ran]이값이 제대로 나오는거죠? 콘솔로그로 확인했을때 데이터가 있는거면 룰렛으로 돌리면 얼랏창 뜨잖아요

$('name="wr_subject"]').val(_items[$ran]) 이렇게

angleCount 함수 내부에 잘 넣어주세요!! (어딘진 질문자가 잘 아시겠죠) 이러고 얼랏창이 끝나면 wr_subject 인풋창에 값이 들어갈거에요 게시판 제목에만 값이 정상적으로 들어가면 되는거잖아요 그리고 ajax 써도 되긴한데 간단한거면 안쓰고 바로 데이터만 전달하면되여! 너무 어렵게 생각하는게 아닌가 생각되네요 맨위에 있던 룰렛 소스는 꼭 게시판 내부에서 넣어주세요

 

 

 

 

답변 감사합니다~~
ajax로 값을 넘겨주려 했던 이유가
게시판은 사용자들에게 안보여주려고 했거든요 ㅠ

답변 주신 내용을 이해해보자면
룰렛을 게시판에 설치하라는 말씀이신가요?

ajax를 이중으로 한적은 없는데.. 제 생각엔 angleCount 함수에서 ajax 로 바로 컨펌으로 올려주세요
그리고 post.php 내부에 보면  ajax 소스를 angleCount함수에 넣으세요 post.php를 쓸필요 없어요

 g5_bbs_url+"/write_update.php" 여기 경로로 ajax 데이터 넘겨주라는 뜻이에요 응용 잘하면 되요


  function angleCount( $ran )
    {
        TweenMax.killTweensOf( _roll_bg );
        TweenMax.set( _roll_bg, { rotation:0 });

        var angle =  360 / _items.length;
        TweenMax.to( _roll_bg, _mTime, { rotation: $ran * angle  , ease:Power0.easeInOut, onComplete:function(){
          alert(_items[$ran]+'당첨되습니다.');
          var token = f.token.value;
      		var uid = "uid="+$("#uid").val();
      		var w = "w="+$("#w").val();
      		var bo_table = "bo_table="+$("#bo_table").val();
      		var wr_id = "wr_id="+$("#wr_id").val();
  
          $.ajax({
      			url: "../bbs/write_update.php",
      			type: "POST",
      			data: {
              "ajax_write": 'y',

              				"uid": fwrite.uid.value,
              				"w": fwrite.w.value,
              				"bo_table": fwrite.bo_table.value,
              				"wr_id": fwrite.wr_id.value,
              				"wr_subject": "_items[$ran]"
      			},
      			dataType: "text",
      			error: function(xhr, status, error){
      				alert(error);
      			},
      			async: false,
      			cache: false,
      			success : function(data){
      				if(data=='success'){
      					alert('등록되었습니다.');
      				}else{
      					alert('실패');
      				}
      				$("#fwrite")[0].reset();
      			}

      		});

        }});
    }

index에 그누보드 헤더랑 게시판 테이블 같은 게시글 작성에 필요한 값은 다 넣어뒀습니다.
해당 js 파일을 index에 불러오는 구조인데 그래도 작동을 할까요?
그리고
앵글카운트 함수에 이렇게 작성하는게 맞을까요?
작동을 안하네요 ㅠ
또, 토큰은 어떻게 해결을 해야할까요?

//결과값 추출

    function randomValue(){

        var ran = parseInt( Math.random() * _items.length );

        angleCount( ran );

    }

==

보안이 필요한 상황이 아니라면 상관 없지만...

아니라면 방식을 아예 바꾸어야 합니다.

답변을 작성하시기 전에 로그인 해주세요.
전체 16,775
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT