상세 컨텐츠

본문 제목

[php] php에서 javascript 호출해서 페이지 이동하는 법 및 페이지 이동 함수

PHP

by Jjiveloper 2022. 1. 27. 15:11

본문

728x90

php에서 페이지 이동하는 법은 다양하다.

그 중에 자바스크립트를 이용한 페이지 이동방법과 얘를 공통 함수로 빼서 편하게 사용할 수 있는법에 대해 소개하고자 한다.

 

우선 자바스크립트를 이용해 페이지를 이용하는 방법이다.

echo 를 꼭 써줘야 작동한다. 그리고 ""따옴표 안에 script 태그를 감싸준 뒤 그 안에 자바스크립트랑 동일한 코드를 넣어준다.

이렇게하면 php에서 javascript 코드가 작동하게 된다.


자주쓰는 코드는 함수로 만들어놓고 불러와서 사용하는게 젤 편하다.

/** script의 페이지 이동 함수문을 불러온다.
 * @Param string path 이동할 페이지 경로
 * @Param string type location의 어떤 함수를 부를 것인지
 */
function scriptLocation(string $path, string $type = "replace"): string
{
  $locationValue = match ($type) {
    'href' => "location.href = '$path';",
    'replace' => "location.replace('$path');",
    'back' => "history.back();",
    'go' => "history.go($path);",
    'reload' => "location.reload();",
    default => "alert('존재하지 않는 함수 호출');",
  };

  return "<script>$locationValue</script>";
}

사용법은 해당 함수에 이동할 페이지 상대경로와 어떤 함수를 이용할 지 이름을 넘겨주면 끝이다!

// 해당 파일의 경로에 있는 mypage.php로 replace한다.
// 함수 기본값을 replace로 해둠
echo scriptLocation("./mypage.php");

// 해당 파일의 경로에 있는 mypage.php로 href로 이동한다.
echo scriptLocation("./mypage.php", "href");

// 뒤로가기를 진행한다.
// history.back() 시 주소가 필요없기 때문에 첫번째 매개변수는 빈 문자열을 넘겨주면 됨
echo scriptLocation("", "back");

함수 앞에 echo를 꼭 붙여줘야한다!

함수 내에 echo를 넣어도 되지만 왠지 보안상 문제가 생기진 않으려나하는 걱정때문에...ㅎㅎ

 

끝!

728x90
반응형

관련글 더보기