좀 더 쉬운 방법이 있을것 같은데 잘 안됩니다.
1.
$_POST['it_id']
$_POST['it_name']
또는
2.
$_POST['it_id'][0]
$_POST['it_id'][0]
$_POST['it_name'][0]
$_POST['it_id'][1]
$_POST['it_name'][1]
이 값을 받습니다.
여기서 1번의 경우와 2번의 경우를 모두 처리할 수 있는 for 문을 작성해야 하는데
for ($i=0; $i<count($_POST['it_id']); $i++) {
$id = $_POST['it_id'][$i];
}
를 얻게 되면 1번의 경우 $id 값은 첨자 0번의 경우 완전한 값이 아니라
substr($_POST['it_id'],0,1) 의 값을 얻게 됩니다.
1번의 경우이거나 2번의 경우이거나 만족할 만한 for 문을 작성하고 싶은데 ... 안되는군요. ㅜㅜ
|
댓글 작성
댓글을 작성하시려면 로그인이 필요합니다.
로그인하기
댓글 19개
$_POST['it_id']
$_POST['it_name']
또는
2.
$_POST['it_id'][0]
$_POST['it_name'][0]
$_POST['it_id'][1]
$_POST['it_name'][1]
1번 유형이건 2번 유형이건 어떤 유형이 들어와도
for ($i=0; $i<count($_POST['it_id']); $i++) {
$id = $_POST['it_id'][$i];
}
이 코드를 실행해야 합니다.
저는 $_POST가 2차원배열 되는거 첨 알았어요. ㅋ
$id = (is_array($_POST['it_id']))?$_POST['it_id'][$i]:$_POST['it_id'];
echo $id."<br>";
}
// is_array 를 안써야 하나요?
갯수가 정해지지 않았다고 봐도 됩니다.
for ($i=0; $i<count($_POST['it_id']); $i++) {
$id = $_POST['it_id'][$i];
echo $id."<br>";
}
예전에 foreach문으로 코딩을 해두어
소스 변경시 그냥 변수를 무조건 배열로 만든적이 있습니다만.
질문이 정확하게 이해가 안갑니다!
<form method='post'>
<input type='text' name='it_id'>
</form>
2.
<form method='post'>
<input type='text' name='it_id[]'>
<input type='text' name='it_id[]'>
</form>
이런 경우로 보시면 됩니다.
// POST 전체 체크
foreach($_POST as $key => $value) {
if(!is_array($value)) $_POST[$key] = array($_POST[$key]);
}
필요한 for문
//특정만 체크
$체크용 = array('it_id','it_name');
foreach($체크용 as $value) {
if(!is_array($_POST[$value])) $_POST[$value] = array($_POST[$value]);
}
필요한 for문
1.
<form method='post'>
<input type='text' name='it_id'>
</form>
2.
<form method='post'>
<input type='text' name='it_id[]'>
<input type='text' name='it_id[]'>
</form>
이런 경우로 보시면 됩니다.
여기서
애초에
1.
<form method='post'>
<input type='text' name='it_id[]'>
</form>
으로 보내면 안되나요?
$_POST['it_id'] = 'aaa';
for ($i=0,$_POST['it_id'] = is_array($_POST['it_id']) ? $_POST['it_id'] : array($_POST['it_id']); $i<count($_POST['it_id']); $i++) {
$id = $_POST['it_id'][$i];
echo $id."<br>";
}
for($i=0; $i < count($_POST); $i++) { <- assoc array 인 경우는 foreach로
if(!is_array($_POST[$i])) {
$_POST[$i] = Array($_POST[$i]);
}
}
저런것이 아니라면
문제가 이해안됩니다.....
몇번을 읽어보아도 위에분들 답변이 다 맞는것 같은데요.
<form>
<input type='text' name='it_id[]'>
</form>
로 수정하는 방향으로 하겠습니다.
답변 주신분들 감사합니다. (__) 꾸벅
gettype 으로 처리하면 되는거 아닌가요
for ($i=0, $c=count($_POST['it_id']); $i<$c; $i++) {
$id = $c ? $_POST['it_id'][$i] : $_POST['it_id'];
}