PHP

PHP 동일한 파라미터 받기 (ex 체크박스)

bang2001 2013. 8. 8. 14:17

JSP를 주로 만드는 저에게 있어서 PHP는 불편한 점이 참 많은 것 같습니다. 특히 동일한 name 속성을 가진 input 엘레먼트가 있을 때, 이를 파라미터로 넘기는 과정이 어색하고, 또 불편하게 느껴지네요.


JSP에서는 request.getParameterValues("파라미터명"); 을 통해서 동일한 파라미터가 있을 경우 String 배열로 쉽게 받아올 수 있었습니다. 그러나 PHP에서는 이렇게 쉽게 구현되지 않습니다. 아래는 PHP에서 동일한 파라미터를 배열로 받아오는 방법입니다.


----------------------------------------------------------------------------------------

[Client 측 (HTML 소스)]

----------------------------------------------------------------------------------------

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">

<html>

<head>

<title> PHP - Input CheckBox 파라미터 넘기기  </title>

</head>


<body>


<form method="post">

<input type="text" name="param[]" /><br/>

<input type="text" name="param[]" /><br/>

<input type="text" name="param[]" /><br/>

<input type="text" name="param[]" /><br/>

<input type="text" name="param[]" /><br/>


<input type="submit" value="Submit"/><br/>

</form>


</body>

</html>

----------------------------------------------------------------------------------------



----------------------------------------------------------------------------------------

[Server측 (PHP 소스)]

----------------------------------------------------------------------------------------

<?

$param_arr = $_REQUEST["param"];


//배열 요소의 갯수만큼 반복동작

for($i=0 ; $i < count($param_arr) ; $i++)

{

//각 배열요소(파리미터)를 출력

echo $param_arr[$i]."<br/>";

}

?>

----------------------------------------------------------------------------------------


위와 같이 input 엘레먼트의 name 속성값의 형태를 배열 형태로 주어 문제를 해결하는 방법이 있습니다. 하지만 개인적으로 이러한 방법은 좋지 않다고 생각이 됩니다. 그 이유는 같은 HTML임에도 불구하고 개발언어에 따라서 PHP로 개발하게 되면 name 속성값 뒤에 [] 를 붙이는 작업을 해야 하기 때문입니다.


더 좋은 방법을 찾았으면 좋겠습니다.