룰렛 이벤트 결과를 게시판에 자동으로 작성하고 싶습니다.
본문
룰렛페이지 결과를 게시판과 연결해서
룰렛 결과를 게시판 제목으로 게시글을 등록하려고 합니다.
회원 여부와 중복참여 구분은 게시글 작성 권한과 게시글 최대 작성 수로 진행할 계획인데,
룰렛페이지에서 게시판으로 결과를 넘기는게 문제네요 ㅠ
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 써도 되긴한데 간단한거면 안쓰고 바로 데이터만 전달하면되여! 너무 어렵게 생각하는게 아닌가 생각되네요 맨위에 있던 룰렛 소스는 꼭 게시판 내부에서 넣어주세요
//결과값 추출
function randomValue(){
var ran = parseInt( Math.random() * _items.length );
angleCount( ran );
}
==
보안이 필요한 상황이 아니라면 상관 없지만...
아니라면 방식을 아예 바꾸어야 합니다.