테스트 사이트 - 개발 중인 베타 버전입니다

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

wjdgjs1982 9년 전 조회 5,657

-- 게시판 글쓰기 페이지 ( 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 폴더에 있습니다.

 

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개

w
9년 전
왕계란께서 아무래도 오해를 하신 듯 해서요

님 댓글 오후에 남기셨던데 이제서야 봤어요

저번에 알려주신 소스대로 해도 반응없어서

네이버.구글 다 뒤져가며 이 방법 저 방법으로

테스트하다 최종 수정까지 온 것인데..

진작 보고 해본뒤 결과에 대해 뭔가 답을

드릴텐데 님 마지막 기분 상하셨다는 말씀보고

추적해보니까 댓글이 있더라구요..

정말 오해는 마셔요 그전처럼 되든 안되든 님께

질문 던졌을거에요
로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

w
9년 전

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

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

 

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

글쓰기 페이지에서 이 있는데

셀렉트의 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 페이지의

에 wr_1과 wr_4에 뿌려줍니다.

 

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

에는

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

 

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

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

왕계란
9년 전
[code]
<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>
[/code]
html 부분입니다.


[code]
<?
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);
[/code]
php 부분입니다.



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

댓글을 작성하려면 로그인이 필요합니다.

w
9년 전

왕계란님!!

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에서 어떻게 처리해야하는지 궁금합니다.​ 

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

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

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

댓글을 작성하려면 로그인이 필요합니다.

url: g5_bbs_url

이거 php 코드 아닌가요?

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

url: "/ajax.wr_code.php",

로그인 후 평가할 수 있습니다

답변에 대한 댓글 2개

w
wjdgjs1982
9년 전
url은 문제가 없더라구요
왕계란
9년 전
success : function(data) {
console.log(data);
우선 이렇게 해서 값이 정상적으로 넘어오는지 확인해 보세요.

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

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

댓글을 작성하려면 로그인이 필요합니다.

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

 

$.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 로 확인.
로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

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

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인