db변수값 미출력문제.. 도와주세요ㅠ

매출이 오르면 내리는 수수료! 지금 수수료센터에서 전자결제(PG)수수료 비교견적 신청해 보세요!
db변수값 미출력문제.. 도와주세요ㅠ

QA

db변수값 미출력문제.. 도와주세요ㅠ

본문

안녕하세요! 그누보드기반 홈페이지 제작하다가 막혀서 질문드립니다ㅠㅠ

페이지내에서 항목버튼을 누르면 (새로고침없이) 지정영역에 내용이 바뀌게 하고싶어서요


<!--내용출력영역-->
<div id="con_frame"><?php include(G5_PATH.'/content/con1.php')?></div>
<div id="con_menu">
<button onclick="change1()">버튼1</button><br>
<button onclick="change2()">버튼2</button><br>
</div>    
<script src="<?php echo G5_JS_URL ?>/jquery-1.8.3.min.js"></script>
<script>
function change1() {
$('#con_frame').load('<?=G5_URL?>/content/con2.php');
}
function change2() {
$('#con_frame').load('<?=G5_URL?>/content/con1.php'); /*첫화면보여주기*/
} 
</script>

 

위 viewer.php에 이렇게 코드를 짰는데 상단첫줄처럼 include로 con1.php를 가져오면

파일내용이 잘 출력됩니다만, 막상 버튼을 눌러보면 파일내 변수값이 출력되지 않습니다

con1,con2.php 파일내에 include_once('./_common.php'); 와 함께 아래코드를 포함했습니다


/* 설정값 가져오기 */
$ch_ar = array();
$str_secret = ' where (1) ';
if($member['mb_id'] == $mb['mb_id']) {
    $str_secret .= " and ar_secret != 'H' ";
} else {
    $str_secret .= " and ar_secret = '' ";
}
$ar_result = sql_query("select * from {$g5['article_table']} {$str_secret} order by ar_order asc");
for($i = 0; $row = sql_fetch_array($ar_result); $i++) {
    $ch_ar[$i] = $row;
}

 

정확히는 [article_table] 해당 테이블값이 불러와지지 않습니다(/data/dbconfig.php 안에 정의했어요!)

편의상생략했으나 con~파일들이 3개이상이고 모두 include로 viewer.php내에 포함시키면 변수값이 제대로 불러와지는데 왜 function 함수로 가져오면 출력이 안 되는 걸까요..?

 

다른 페이징 소스로


<form method="post">
    <input type="submit" name="test" id="test" value="버튼이름" /><br>
</form>
<?php
function testfun() {
    include(G5_PATH.'/content/con1.php');
    }
    if(array_key_exists('test',$_POST)){ testfun();
    } ?>

 

이렇게도 써봤는데 함수안의 include로 불러왔더니 역시 변수값이 출력되지 않았습니다

분명 상단에 _commom.php 포함해주고 그냥include했을때는 제대로 보이니 파일 소스의 오류같지는 않아서... 혹시 php랑 자바스크립트간의 변수넘기는 문제와 관련이 있나요..?

 

며칠 해결해보려고했는데 코딩초보라 모르겠습니다ㅠㅠ.. 이런쪽 문제같다~정도의 조언이나 가이드만이라도 주시면 감사할 것 같습니다...

 

 

이 질문에 댓글 쓰기 :

답변 4

$.load를 이용해서 호출하는 페이지를 삽입하게 하시려면

iframe을 부르듯 파라미터를 넘기셔야 합니다.

con1.php입장에서 불려지는 시점에 전달받은 값이 없는데 어떻게 출력을할지 잘 고려하셔야합니다.

(하드코딩으로 지정할수도있겠지만)

 

즉, 호출하는페이지와 호출되는페이지가

서버상에서 동시에 호출되면 include를 이용해서 1개의 페이지로 구성해서 서버사이드 작업수행후 

브라우저로 전송하게 하시거나

 

페이지가 조건에 따라 혹은 이벤트에 따라 다르게 호출되게 하려면

$.load()와 같은 방법으로 호출할때는 파라미터를 전달해서 

불려지는페이지가 변수들을 인지할수있게 구성을 해주셔야합니다.

con1.php 에서 출력하는 부분이 없는데요?

혹시 con1.php 에서 세팅된 php 변수를 불러온 페이지에서 사용하시려는 거면 불가능합니다.

php 는 서버에서 모두 실행되고 난뒤 해당 결과값만 브라우저에 html 이나 json등의 문자열을 송신하는거거든요.

제가 말한게 맞다면 con1.php 에서는 계산된 값을 json 과 같은 형태로 출력을 해주시고 호출한 페이지에서 객체로 받아서 javascript 로 프로그래밍 하셔야 합니다.

jQuery 에서는 $.ajax 의 콜백함수로 이 작업을 할 수 있습니다.

con화일에서


if($member['mb_id'] == $mb['mb_id']) {
<---이 코드에서
$mb['mb_id'] 
값을 어디서 구해오는가요?

이 값이 없으니 include와 다르게 나오는 것이 아닌지 확인해보세요

 

화일 하단에 echo 'con111111111111111111';<--이걸 넣어서 잘 나오는지 확인도 해보세요

 

답변을 작성하시기 전에 로그인 해주세요.
전체 0
QA 내용 검색
  • 개별 목록 구성 제목 답변작성자조회작성일
  • 질문이 없습니다.

회원로그인

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