ajax로 db와 연동해보려는데 반응이 없어요ㅠㅠ

ajax로 db와 연동해보려는데 반응이 없어요ㅠㅠ

QA

ajax로 db와 연동해보려는데 반응이 없어요ㅠㅠ

본문

-- 게시판 글쓰기 페이지 ( write.skin.php) --

function chkcode(){
 if(fwrite.wr_2.value=="100") { fwrite.wr_3.value="a";  }   
 if(fwrite.wr_2.value=="101") { fwrite.wr_3.value="b"; }
 if(fwrite.wr_2.value=="102") { fwrite.wr_3.value="c"; }
 if(fwrite.wr_2.value=="103") { fwrite.wr_3.value="d"; }
 if(fwrite.wr_2.value=="104") { fwrite.wr_3.value="e"; }
 if(fwrite.wr_2.value=="105") { fwrite.wr_3.value="f"; }
 if(fwrite.wr_2.value=="106") { fwrite.wr_3.value="g"; }
 if(fwrite.wr_2.value=="107") { fwrite.wr_3.value="h"; }
 if(fwrite.wr_2.value=="108") { fwrite.wr_3.value="i"; }
 if(fwrite.wr_2.value=="109") { fwrite.wr_3.value="j"; }
 if(fwrite.wr_2.value=="131") { fwrite.wr_3.value="k"; }

 //var x=$("#wr_2 option:selected").val();  
 //$("#wr_2n").val(x);
      var datas = ajaxSelectCode();

}
function ajaxSelectCode() {

     var result = "";

      $.ajax({

          type: "POST",

          url: g5_bbs_url+"/ajax.wr_code.php",

          data: { "wr_2": $("#wr_2").val() }, // 중요부분. $('#wr_2').val() 현재 선택된 값을 가져온다.

          success: function(data) {

          result = data

   }

});

}

-- ajax 받아오는 페이지 (ajax.wr_code.php)-- //bbs 폴더에 있습니다.

 

<?php
include_once('./_common.php');
$wr_2 = $_POST['wr_2'];
echo $wr_2;

if($w=='') {
 $sql = "select wr_1, wr_4 from {$write_table} where wr_2 = '$wr_2' ";
 $row=sql_fetch($sql);
 
    while($re = sql_fetch_array($sql)) {
  $wr1 = $re[wr_1];
  $wr2 = $re[wr_2];
  $wr4 = $re[wr_4];
 }
 if($wr_2n == $wr2 && $wr_1 == '') {
  $wr_1 = 1;
  $wr_4 = 1;
 }
 else {
  $wr_1 = $wr_1 + 1;
  $wr_4 = $wr_4 + 1;
}
}
?>

 

select 선택시 option의 value값을 ajax data를 통해 ajax.wr_code.php으로 전달하고

ajax.wr_code.php에서는 value값을 $wr_2=$_POST['wr_2'];

그리고는 sql문에 where wr_2=$wr_2로 된 필드만 가져와서 wr_2에 select의 option값이

있다면 기존의 wr_1과wr_4의 숫자에 각각 +1씩해서 글쓰기의 wr_1과wr_4의 input 폼에 값을 뿌려주고

없다면 wr_1과wr_4에는 1을 글쓰기의 wr_1,wr_4 input 폼에 뿌려주려고 하는 의도인데

미치도록 안되네요.ㅠㅠ

ajax post반응 조차 없는 것 같아요...제가 무엇을 빠트렸는지 잘못 입력했는지 도저히 못찾겠습니다. 

이 질문에 댓글 쓰기 :

답변 5

에러코드를 확인해보세요.

 

$.ajax({

          type: "POST",

          url: g5_bbs_url+"/ajax.wr_code.php",

          data: { "wr_2": $("#wr_2").val() }, // 중요부분. $('#wr_2').val() 현재 선택된 값을 가져온다.

          success: function(data) {

          result = data

   }

});

 

 

 

$.ajax({

          type: "POST",

          url: g5_bbs_url+"/ajax.wr_code.php",

          data: { "wr_2": $("#wr_2").val() }, // 중요부분. $('#wr_2').val() 현재 선택된 값을 가져온다.

          error : function(request, status, error) {

            //통신 에러 발생시 처리

            alert("code : " + request.status + "\r\nmessage : " + request.reponseText);

          } ,

          success: function(data) {

          result = data

   }

});


로 작성 후 확인.

또는 크롬의 개발자모드 Network 로 확인.

우선 sucess에 result=data를 $("#wr_5").val(data);로 하니깐 wr_5의 input box 에 선택된 옵션값이 보여집니다. 문제는 이 옵션값을 가지고  db와 비교 후 출력하는 부분인데..
ajax.wr_code.php에 쿼리 비교문을 했지만 아무런 반응이 없습니다.
혹시 sucess에 어떻게 설정해야 하는지 그리고 ajax.wr_code.php의 쿼리문도 수정해야하는 것인지
방법을 못찾고 있네요ㅠㅠ

url: g5_bbs_url

이거 php 코드 아닌가요?

딱히 변수로 선언된 부분이 안 보이는데...

url: "<?=g5_bbs_url?>/ajax.wr_code.php",

success : function(data) {
  console.log(data);
우선 이렇게 해서 값이 정상적으로 넘어오는지 확인해 보세요.

긜고 ajax.wr_code.php 이 페이지에 보면
echo $wr_2;
이렇게 되어 있네요.
이러면 $wr_2 값이 result 변수에 들어갈 텐데...

이건 테스트로 찍었다고 쳐도 해당 페이지에서 success 시에 넘기는 값이 하나도 없네요.
echo $wr_1;
echo $wr_4;
이런 식으로라도 값을 넘겨야 하지 않나요?

왕계란님!!

var result=''; / sueccss(function) { resule=data } 이런식으로 하면 값이 넘어오질 않더라구요

 

대신 sucess에 $("#wr_2n).val(dat);로 하니깐 wr_2n이라는 input box에 값을 보여주더라구요

 

그리고 말씀대로 $wr_1과 $wr_4에도 echo문을 사용했더니 wr_2n라는 inputy box에

 

wr_2와 wr_1,wr_4 모두 값이 보여주던데..문제는 ajax.wr_code.php에서 db쿼리를 이용해서

 

$wr_2 = $_POST['wr_2']의 값을 db의 쿼리문 중 where wr_2 = $wr_2에 사용하여

 

DB의 wr_2에 저장된 값과 ajax로 받은 $wr_2값과 비교하여 해당하는 값이 없다면

 

wr_1과 wr_4에 1이라는 숫자를 부여하고 있다면 기존의 wr_1과 wr_4에 +1씩하려는 의도이거든요

 

DB의 필드 값과 $wr_2값이 제대로 비교되어 지는지..그리고 wr_1과 wr_4를 echo문으로 처리했을ㅇ때

 

wr_1과 wr_4에 각각 별도로 부여하고 싶은데 suceess에서 어떻게 처리해야하는지 궁금합니다.​ 

data: { "wr_2": $("#wr_2").val() },
이 부분도 좀 이상하네요.
data: { wr_2: $("#wr_2").val() },
앞에 큰따옴표 제거해 주세요.

근데 코딩이 좀 이해가 안 가게 쓰신 듯합니다.
스크립트 부분은 일단 빼구요, html 부분만 갖고 설명을 해 주시는 게 더 나을 듯합니다.
<input type="text" name="wr_2" value="" />
이런 게 있는데 여기에 무슨 값이 어떻게 되고 그 값이 이럴 땐 저렇게 되어야 한다...
이렇게요.

왕계란님 감사합니다.ㅠㅠ 제가 말 전달이 미숙해서 님까지 머리아프게 한 것 같아요..

저도 이런 저런 테스트 해보다 지쳐서 머리까지 @@#@@되고 있거든요

 

음 우선 코딩을 말로 설명한다면 이렇게 되요..

글쓰기 페이지에서 <select name='wr_2' id='wr_2'>~~~</select>이 있는데

셀렉트의 option값을 선택하면 onChange()를 통해 ajax로 처리합니다.(write.skin.php)

그리고 바로 DB의 wr_2의 필드와 셀렉트의 선택된 옵션값과 비교합니다.(ajax.wr_code.php)

 

ajax.wr_code.php에서

만약 option값과 DB의 wr_2의 필드값이 같다면

DB의 wr_1, wr_4필드값을 뽑아와서 wr_1과wr_4에 1씩 더해준 뒤 그 값을 아래 write.skin.php 페이지의

<input type=text name='wr_1' id='wr_1' value='<?php echo wr_1?>'>과

<input type=text name='wr_4' id='wr_4' value='<?php echo wr_4?>'>에

에 wr_1과 wr_4에 뿌려줍니다.

 

만약 option값이 DB의 wr_2의 필드값에 저장되어 있는 것이 없다면

<input type=text name='wr_1' id='wr_1' value='<?php echo wr_1?>'>과

<input type=text name='wr_4' id='wr_4' value='<?php echo wr_4?>'>에는

각각 숫자 1을 뿌려줍니다.

 

이런 구조인데 ...혹시 이해가 되셨는지요ㅠㅠ 


<select name="wr_2" id="wr_2">
	<option value="1">1</option>
	<option value="2">2</option>
	<option value="3">3</option>
</select>
<input type="text" name="wr_1" id="wr_1" />
<input type="text" name="wr_4" id="wr_4" />

<script type="text/javascript">
$(function() {
	$("#wr_2").on("change", function() {
		$.ajax({
			type : "post",
			url : "ajax.wr_code.php 경로",
			dataType : "json",
			data : {
				wr2 : $(this).val();
			},
			success : function(v) {
				if(v) {
					$("#wr_1").val(v.wr1);
					$("#wr_4").val(v.wr4);
				} else {
					alert("Error!");
					return false;
				}
			}
		});
	});
});
</script>

html 부분입니다.



<?
include_once "_common.php";
$res = array();
$wr2 = $_POST['wr2'];
$num = sql_fetch("SELECT wr_1, wr_4 FROM 테이블명 WHERE wr_2 = '".$wr2."'");
if($num['wr_1'] && $num['wr_4']) {
	$res['wr1'] = $num['wr_1'] + 1;
	$res['wr4'] = $num['wr_4'] + 1;
}

echo json_encode($res);

php 부분입니다.



올려 주신 코드를 봐도 좀 이상한 부분이 많아서 일단 wr_1, wr_4에 값이 들어가도록 처리만 된 것입니다.
물론 테스트는 안 했으니 실제 페이지에 적용해 보시고 되는지 확인은 하셔야 할 듯하네요.

왕계란께서 아무래도 오해를 하신 듯 해서요
님 댓글 오후에 남기셨던데 이제서야 봤어요
저번에 알려주신 소스대로 해도 반응없어서
네이버.구글 다 뒤져가며 이 방법 저 방법으로
테스트하다 최종 수정까지 온 것인데..
진작 보고 해본뒤 결과에 대해 뭔가 답을
드릴텐데 님 마지막 기분 상하셨다는 말씀보고
추적해보니까 댓글이 있더라구요..
정말 오해는 마셔요 그전처럼 되든 안되든 님께
질문 던졌을거에요
답변을 작성하시기 전에 로그인 해주세요.
전체 59,505
QA 내용 검색

회원로그인

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