주제: 관리자용 플러그인 개발 중.... $_POST 값???
허접한 플러그인을 하나 만들어 보려고 하고 있습니다.
물론 html, php 다 초보 수준입니다.
질문:
관리자 메뉴에 Plugin P 항목을 추가해서 a.php 에 있는 function A()를 호출하는 것까지는 잘 됩니다.
A()를 수행하기 위해 필요한 사용자 입력이 있는데, 이것은 플러그인 환경설정에 가져오기가 곤란한 자료들이라서 별도의 폼을 만들었습니다.
폼은 form.php 에 저장되어 있습니다.
index.xml에다 handler form_handler를 집어넣고, index.php에 다음과 같이 정의를 했습니다.
사용자가 OK 버튼을 누르면, ValidationInput() 함수에서 폼내의 값들을 확인해서 올바른 값이면 function A()를 부르고 아니면 에러메시지를 출력하고 다시 폼을 뿌려주는 함수입니다.
plug_in과 연동 시키지 않았을때 ValidationInput()이 잘 작동하는 것을 확인한 뒤 plug-in에 붙였는데, 화면에 출력은 동일하게 잘 됩니다(약간의 우여곡절이..).
근데 문제는 버튼을 클릭했을때, 연동시키지 않았을때는 check를 잘하던 isset($_POST[..]) 함수가 plug-in과 연동했을때는 항상 false가 넘어 옵니다.
즉, $_POST['OK']값이 undefined 되어 있는 것 같습니다.
Javascript로 짜서 확인 해 보면 document.myform.OK.value 가 onclick시 'OK'로 잘 세팅되어 있더군요.
플러그인에서 일반적인 폼을 작성한 후, $_POST로 값을 받을 수 없는 것인가요...?
<?
function form_handler()
{
?>
<form method="POST" name="myform">
....
<input type='submit' name='OK' value='OK'>
</form>
<?
}
if ( isset($_POST['OK'] ) {
ValidationInput();
}
else {
form_handler();
}
?>
두번째 질문은 form의 action 부분에 do_work.php를 연동시켰습니다.
<form method="POST" action="do_work.php"...>
<input type="submit">
</form>
버튼을 클릭하면 do_work.php를 수행하고 do_work.php는 화면에 "hello"를 출력하는 초간단 파일입니다.
<?
echo "Hello<br>";
?>
do_work.php는 index.php와 동일한 디렉토리에 존재하는데, 버튼을 클릭해도 수행이 안되는 것 같습니다.
브라우저의 주소창에는 do_work.php가 보이긴 하지만 화면에는 공백만 나타납니다.
plug-in에서는 form에서 외부 스크립터 화일을 직접 수행하지 못하는 것인가요??
* 너무 질문이 횡설수설...합니다. *