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

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';<--이걸 넣어서 잘 나오는지 확인도 해보세요

 

답변을 작성하시기 전에 로그인 해주세요.
전체 6
QA 내용 검색

회원로그인

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