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
}
});
url: g5_bbs_url
이거 php 코드 아닌가요?
딱히 변수로 선언된 부분이 안 보이는데...
url: "<?=g5_bbs_url?>/ajax.wr_code.php",
왕계란님!!
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에서 어떻게 처리해야하는지 궁금합니다.
왕계란님 감사합니다.ㅠㅠ 제가 말 전달이 미숙해서 님까지 머리아프게 한 것 같아요..
저도 이런 저런 테스트 해보다 지쳐서 머리까지 @@#@@되고 있거든요
음 우선 코딩을 말로 설명한다면 이렇게 되요..
글쓰기 페이지에서 <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을 뿌려줍니다.
이런 구조인데 ...혹시 이해가 되셨는지요ㅠㅠ
님 댓글 오후에 남기셨던데 이제서야 봤어요
저번에 알려주신 소스대로 해도 반응없어서
네이버.구글 다 뒤져가며 이 방법 저 방법으로
테스트하다 최종 수정까지 온 것인데..
진작 보고 해본뒤 결과에 대해 뭔가 답을
드릴텐데 님 마지막 기분 상하셨다는 말씀보고
추적해보니까 댓글이 있더라구요..
정말 오해는 마셔요 그전처럼 되든 안되든 님께
질문 던졌을거에요