룰렛페이지 결과를 게시판과 연결해서
룰렛 결과를 게시판 제목으로 게시글을 등록하려고 합니다.
회원 여부와 중복참여 구분은 게시글 작성 권한과 게시글 최대 작성 수로 진행할 계획인데,
룰렛페이지에서 게시판으로 결과를 넘기는게 문제네요 ㅠ
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개 / 댓글 5개
음... 쉽게 간단하게 생각해봅시다!! 우선
_items[$ran]이값이 제대로 나오는거죠? 콘솔로그로 확인했을때 데이터가 있는거면 룰렛으로 돌리면 얼랏창 뜨잖아요
$('name="wr_subject"]').val(_items[$ran]) 이렇게
angleCount 함수 내부에 잘 넣어주세요!! (어딘진 질문자가 잘 아시겠죠) 이러고 얼랏창이 끝나면 wr_subject 인풋창에 값이 들어갈거에요 게시판 제목에만 값이 정상적으로 들어가면 되는거잖아요 그리고 ajax 써도 되긴한데 간단한거면 안쓰고 바로 데이터만 전달하면되여! 너무 어렵게 생각하는게 아닌가 생각되네요 맨위에 있던 룰렛 소스는 꼭 게시판 내부에서 넣어주세요
답변에 대한 댓글 4개
그리고 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();
}
});
}});
}
[/code]
index에 그누보드 헤더랑 게시판 테이블 같은 게시글 작성에 필요한 값은 다 넣어뒀습니다.
해당 js 파일을 index에 불러오는 구조인데 그래도 작동을 할까요?
그리고
앵글카운트 함수에 이렇게 작성하는게 맞을까요?
작동을 안하네요 ㅠ
또, 토큰은 어떻게 해결을 해야할까요?
//결과값 추출
function randomValue(){
var ran = parseInt( Math.random() * _items.length );
angleCount( ran );
}
==
보안이 필요한 상황이 아니라면 상관 없지만...
아니라면 방식을 아예 바꾸어야 합니다.
답변에 대한 댓글 1개
답변을 작성하려면 로그인이 필요합니다.
ajax로 값을 넘겨주려 했던 이유가
게시판은 사용자들에게 안보여주려고 했거든요 ㅠ
답변 주신 내용을 이해해보자면
룰렛을 게시판에 설치하라는 말씀이신가요?