제목 | 자바스크립트에서 나온 결과값을 PHP 구문에 if문 else문 만들고 싶은데요. | ||
---|---|---|---|
글쓴이 | AMKORJS | 작성시각 | 2014/07/15 13:14:49 |
|
|||
<script language="JavaScript"> function reverse_counter(){ today = new Date(); start_d_day = parseISO8601("$start_datetime"); 생략.... if(조건1){ document.getElementById('counter_box').innerHTML = "결과값1" }else if(조건2){ document.getElementById('counter_box').innerHTML = "결과값2" }else{ document.getElementById('counter_box').innerHTML = "결과값3" } //--> </script> <?php $product_info_item.=" 생략..... <BODY onLoad='reverse_counter()'> <span id='counter_box'></span> 생략..... "; ↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓여기서 문제가 생기네요 ㅠ,ㅠ↓↓↓↓↓↓↓↓↓↓↓↓↓↓ 여기서 자바스크립트에서 가져온 값이 결과값1이나 결과값2냐 결과값3이냐 에따라 if(조건){ 본 상품은 이미 상품기간이 지나 판매가 가능하지 않습니다. }else if(조건2){ 본 상품은 상품시작을 하지 않았습니다. else{ 본 상품은 판매가 가능합니다. } ?> 자바스크립트의 reverse_counter함수에서 가져온 값이 span id='counter_box' 으로 값(카운트 다운)을 가져올때 그다음 진행을 못하겠네요 ㅠ,ㅠ DB에서 컬럼 추가해 따로 만들자니 ㅠ,ㅠ 자바스크립트 결과값에 따라 값이 달라지기 때문에 따로 할수 없고.. 어떻게 하면 좋을까요? ㅠㅠ, |
|||
다음글 | view페이지에서 페이지데이터갱신 (1) | ||
이전글 | 쿼리질문드립니다! (여러행으로 변환하기) (1) | ||
한대승(불의회상)
/
2014/07/15 15:16:47 /
추천
0
자바스크립트는 자바스크립트로... 이럴때 ajax를 사용해야죠.
|
AMKORJS
/
2014/07/16 14:50:09 /
추천
0
답편 감사합니다.
한가지 궁금한것이 있는데요 ajax으로 처리하면 그 값을 php구문에 넘겨줄수 있는데.. 문제는 각각 결과값을 $변수 로 담아야 하는데 이 방법은 ajax로 가능하지 않지 않나요? name값으로 value값으로 담으면 가능하는데 ㅠ,ㅠ php $변수로 담기에는 무리가 있지 않나요? |
변종원(웅파)
/
2014/07/16 14:59:14 /
추천
0
자바스크립트로 처리해야하는 값 자체를 ajax로 php에서 처리하여 넘겨줘야 합니다.
자바스크립트에서는 post로 php에 값을 전달하구요. 우선 서버단과 클라이언트단의 역할과 할 수 없는 작업 등에 대해 개념을 먼저 잡으시는게 좋을 것 같습니다. 저렇게 단편적인 스킬(?)에 대한 것 보다는 뭘 어떻게 하려는지 올려주시면 그에 대한 해결책을 드리는게 좋을 것 같네요 |
AMKORJS
/
2014/07/16 15:18:38 /
추천
0
<script language="JavaScript"> function reverse_counter(){ 생략... if(today < start_d_day && start_days < end_d_day){ document.product_list.counter_box.value = " 상품 개시 남은시간 : " + start_daysRound + dy + start_hoursRound + hr + start_minutesRound + min + start_secondsRound + sec; newtime = window.setTimeout("reverse_counter();", 1000); return; }else if(start_d_day <= today && today <= end_d_day) { document.product_list.counter_box.value = " 상품 종료 남은시간 : " + end_daysRound + dy + end_hoursRound + hr + end_minutesRound + min + end_secondsRound + sec; newtime = window.setTimeout("reverse_counter();", 1000); return; }else{ //일:0 시간:0 분:0 초:0 이라면 종료메세지 출력 document.product_list.counter_box.value = '상품 판매가 종료되었습니다.'; } } </script> <?php <BODY onLoad='reverse_counter()'> <input align='center' type='text' name='counter_box' style='border-width:0;color:red' size='56' > IF($quantity <= 0 || $PRICE_PRT_CK == "N"){ // 재품수량 및 판매 가능 판별 $buy_btn = "[removed]alert('구매하시고자 하는제품은 품절이거나 가격이 책정되지 않았습니다\\n고객센터로 문의 하세요');"; // 바로구매 버튼클릭시 alert문구 ?> |
AMKORJS
/
2014/07/16 15:23:07 /
추천
0
우선 간단하게 소스 분석하면 onload로 자바스크립트 안에 함수 reverse_counter 실행하고 실행한후 결과값을 다시
name='counter_box' 이쪽 input에 전달하게 됩니다. 전달된 값에 의해 php 구문안에 지정된 변수를 각각 다르게 저장시켜서 저장된 변수 값으로 $buy_btn 여기에 출력을 할려고 하지만 문제는 자바스크립트에 나온 결과값을 php 변수로 저장하는것인데 이전에 다른걸로 짠 ajax로 한번 보았지만 자바스크립트안에 있는 값 결과값을 php구문에 어떻게 변수로 각각 지정할지 모르겠네요 ㅠ,ㅠ |
변종원(웅파)
/
2014/07/16 16:18:48 /
추천
0
자바스크립트의 변수는 php에 직접 전달(대입)할 수 없습니다.
시간값에 따라 버튼을 구매, 구매중지 등으로 표시하려면 폴링을 돌아 처리하는 방법(어차피 ajax 입니다)이 있습니다. 자바스크립트에서 1초에 한번 ajax로 서버에 요청하고 서버에서는 구매 또는 구매중지 시그널을 내려보내고 자바스크립트에서 그 값에 따라 화면처리. (서버에서도 구매버튼 클릭하여 폼전송이 왔을때 시간값 체크하여 구매할 수 없습니다. 표시 하도록 처리하여 이중화를 해야합니다.) 서버단의 프로그래밍과 자바스크립트의 방식을 혼동하시는 것 같습니다. |