묻고답하기
반복문에 변수 적용
2016.05.05 18:24
<block loop="$calcAcd=>$key,$val">
<strong cond="$val->wtw == $wtw">{$val->$acdTxt}</strong>
</block>
=============================================
$acdTxt가 전달받은 필드명이 있어서 위 처럼 루프를 돌리려는데 계속 에러가 나네요..
괄호를 이리저리 바꿔봐도 답이 없어서 염치 불구하고 질문 드립니다.
제가 아직도 템플릿 문법을 이해를 잘 못하고 있나봐요 ㅠ
댓글 8
-
Xiso
2016.05.05 22:30
-
신화창조
2016.05.06 14:08
우선 답변 감사합니다.
그런데 알려주신 방법으로 안되네요 ㅠ
php가 아니고 외부 페이지 html 파일에서 실행하고 있습니다.
-
sejin7940
2016.05.06 14:24
{$val->$acdTxt} 를 {$val->acdTxt} 이런 구조가 될건데.. ( $ 가 빠져야하죠 )
실제 $val 이 어떤 형태인지를 알 수가 없으니..
아니면 {$val->get('acdTxt')} 로 해보시거나..
-
신화창조
2016.05.06 14:32
두 가지 다 안되네요 ㅠ
$val 이 어떤 형태인지라는 물음에 답을 드리고 싶은데 어떻게 답변을 드려야 할지 몰라서
죄송합니다. ㅠ
행과 열이 일치하는 하나의 값을 찾기 위한 코드표 형태의 테이블이 있고..
반복문으로 우선 필드 전체를 반복시키고 거기서 해당하는 값을 찾고 있습니다.
$acdTxt 변수가 갖고 있는 값은 f350 과 같은 필드명입니다.
정확한 답변을 위해 제대로 설명 드려야 하는데 초보라 설명도 제대로 못하네요. 죄송합니다. ㅠ
-
Xiso
2016.05.07 13:37
$acdTxt에 키명을 받으신경우인듯한데, 두가지방법이있습니다.
{(array)$val[$acdTxt]} 형태로 배열로바꿔서 출력하실수있고, 싫으시다면
<?php echo $__Context->$val->{$actTxt} ?> 형태로 쓰실수있습니다.
html에서 쓴다고하셨지만 xe 컴파일러가 결국 php형태로 변환해 캐시를만들어 쓰기때문에 아마 가능할겁니다.
-
신화창조
2016.05.08 13:07
우선 지난 답변들 진심으로 감사드립니다.
그런데 아무리 해도 안되네요 ㅠ
이것 때문에 몇일째 골머리를 썩고 있는데 죄송하지만 한번만 더 봐주시면 감사하겠습니다.
풀소스와 DB 파일 첨부합니다.
-
Xiso
2016.05.08 15:21
상단에서 호출한
{@
$oDB = &DB::getInstance();
$calc_caliper = $oDB->_query("select * from calc_caliper");
$calcCaliper = $oDB->_fetch($calc_caliper);
$calc_os = $oDB->_query("select * from calc_os");
$calcOs = $oDB->_fetch($calc_os);
$calc_acd = $oDB->_query("select * from calc_acd");
$calcAcd = $oDB->_fetch($calc_acd);
$calc_al = $oDB->_query("select * from calc_al");
$calcAl = $oDB->_fetch($calc_al);
$calc_cv = $oDB->_query("select * from calc_cv");
$calcCv = $oDB->_fetch($calc_cv);
$calc_icl = $oDB->_query("select * from calc_icl");
$calcIcl = $oDB->_fetch($calc_icl);$acdTxt = "f".str_replace(".","",$acd);
$alTxt = substr("f".str_replace(".","",$al), 0, 4);
$cvTxt = "f".$cv;
}이부분 자체가 그뒤에 호출하는 <?php ?>형태의 소스보다 나중에 컴파일되기 때문에 안나오는게 당연한듯합니다.
상단소스를 전부 순수 php로 작업하고 하단도 그렇게하시는게 지금은 가장 효율적일것으로 판단됩니다.
정 어려우시면 쪽지로 url과 계정정보를 남겨주세요.
-
신화창조
2016.05.08 18:15
조건문으로 해결했습니다.
큰 도움 주셔서 정말 진심으로 감사드립니다 ^^
{$val->$acdTxt}
을
<?=$__CONTEXT->{$acdTxt}?>
로 수정해보세요.