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

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

QA

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

답변 2

본문

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

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

 

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

 

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

 



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 );

    }

==

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

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

답변을 작성하시기 전에 로그인 해주세요.
QA 내용 검색
질문등록
  • 질문이 없습니다.
전체 16,797
© SIRSOFT
현재 페이지 제일 처음으로