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 속성값 뒤에 [] 를 붙이는 작업을 해야 하기 때문입니다.
더 좋은 방법을 찾았으면 좋겠습니다.
'PHP' 카테고리의 다른 글
PHP 세션(Session)을 사용할 수 없는 경우 (세션 생성 문제) (0) | 2013.10.17 |
---|---|
PHP 숫자에 콤마(,) 찍기 (0) | 2013.10.16 |
PHP 해당 연,월에 대한 마지막 일자 구하기 (0) | 2013.10.04 |
PHP 에러메시지 출력 (소스코드로 에러 보이도록 설정하기) (0) | 2013.08.13 |
PHP iconv 함수 (0) | 2013.08.05 |