ajax로 데이터 가져올때 특정 데이터만 가져오는 방법질문드려요

ajax로 데이터 가져올때 특정 데이터만 가져오는 방법질문드려요

QA

ajax로 데이터 가져올때 특정 데이터만 가져오는 방법질문드려요

본문

a.php 에서 sql에서 불러온 데이터를

b.php에서 ajax를 이용해서 데이터를 div로 가져오려고 합니다

그런데 버튼을 누르면 div에 있는 111이 사라지긴 하는데 a.php에서 sql에서 불러온 데이터를 가져오진 못하는것같아

a.php에 값들앞에 echo를 붙여 a.php 화면에 보이게 한다음
b.php에서 버튼을 눌렀더니 it_id에 해당하는 값만 가져와지는게 아니라 전체데이터가 다 불러와지는데
특정 데이터만 불러올수 있는 방법은 없나요?

그리고 a.php에 echo로 데이터들이 보이게해야지만 데이터를 가져올수 있는 건가요???

 

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

a.php

<?

include_once('./_common.php');

 

$sql = "select * from " . $g5['product_table'];

$result = sql_query($sql);

while ($row = sql_fetch_array($result)) {

    $ph_name_device = $row['ph_name_device'];

    $ph_price = $row['ph_price'];

    $t_idx = $row['t_idx'];

    $it_id = $row['it_id'];

 

    $sql2 = "select * from ".$g5['com_table']." where (1) and idx = '".$row['t_idx']."'";

    $row2 = sql_fetch($sql2);

    $t_img_tmp = $row2['t_img_tmp'];

    $idx = $row2['idx'];

    $t_name = $row2['t_name'];

}

 

b.php

 

<li>

<span class="telecom">

<input type="radio" class="radio" name="com" id="com" value="L" onclick="setfrm();">

<label for="com" class="l">L</label>

</span>

</li>

 

<div id="qq" name="qq" >111</div>

 

function setfrm() {

var it_id = $("input:radio[name=com]:checked").val();

    $.ajax({

        url : "a.php",

        type : "POST",

        data : "it_id=" + it_id,

        success : function(response) {

            $("#qq").html(response);

        }

    });

}

이 질문에 댓글 쓰기 :

답변 3

b.php 에서 

data : "it_id=" + it_id,

로 a.php 에 변수를 전달했기 때문에..

 

a.php 에서 $_POST['it_id'] 로 전달받은 값을 사용할 수 있습니다.

a.php 의 sql문을 전달받은 it_id 값으로 쿼리를 하는 것으로 sql문을 수정해 주면 됩니다.

 


<?php
include_once('./_common.php');
 
$sql = "
  select * 
    from {$g5['product_table']}
   where it_id = '{$it_id}'
";
 
$row = sql_fetch($sql);
$t_idx = $row['t_idx'];
 
$sql = "
  select * 
    from {$g5['com_table']} 
   where idx = '{$t_idx}'
";
 
$row = sql_fetch($sql);
$t_name = $row['t_name'];
 
echo $t_name;
?>

 

ajax 로 통신시 반환되는 데이터 타입은 "html", "json", "xml" 등으로 받을 수 있는데.. 처음에 시작하는 단계에서는 "html" 로 받는게 쉬운 편입니다.

a.php 에서 원하는 값을 echo 로 출력해주면 됩니다.

a.php 에서 만든 데이터를 리턴 해줘야  b.php 에서 볼수 있을건데요

a.php 보믄  쿼리만 있지 리턴 같은거 해주는게 없네요

 

json 형태로 만들어서 보내보세요

예로...

while문 위에  데이터 담을 변수 생성해서

$tmpResult = array();

 

while문 안에서 생성된 데이터를 담아서

 

$tmpResult['ph_price '] = $ph_price;

$tmpResult['t_img_tmp '] = $t_img_tmp;

등등...

die(json_encode($tmpResul));

받는쪽에선 

console.log(result) 찍어서 데이터 확인 해서 json 풀어서 뿌려주면 되지 않을가 싶네용

 

정확한건 아니지만  이런식? 이면 되지 않을가 싶어요

 


질문이 잘못 되었습니다
1. data : "it_id=" + it_id, <--이렇게 it_id 값을 넘겨주기는 하는데 a.php에서는 사용을 하지도 않는다
 
2. $result = sql_query($sql);<--이렇게 하면 테이블의 모든 레코드를 불러오게 되는데 잘못된 코드 같음
넘겨주는 it_id에 해당하는 특정 레코드를 추출하고 싶은 것이라면 아래와 같이 
$row =sql_fetch("select * from {$g5['product_table']} where it_id='$it_id' ");
 
3. ajax에서 값을 받는 방법은 a.php에서 출력하는 모든 내용
즉 echo $row['ph_name_device']; <--이렇게 사용
여러개의 값을 가져오려면 json 사용이지만 전혀 모르는 것같으니 필요한 내용을 구분자로 합쳐서
하나의 문자열로 출력하고 response에서 잘라서 사용 
echo $row['ph_name_device'].'@'.$row['ph_price']  ~~~~
 
function(response) {
 tmp= respone.split('@');
 alert(tmp[0]);
 alert(tmp[1]);
답변을 작성하시기 전에 로그인 해주세요.
전체 59,304
QA 내용 검색

회원로그인

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