2012-03-04 5 views
4

내 웹 사이트 사용자가 사용자 정의 양식을 생성 할 수 있습니다. 모든 필드는 고유 한 ID로 데이터베이스에 저장됩니다. 누군가가 양식을 방문하면 필드 '이름'속성의 값을 검색 난 양식을 검증하기 위해 PHP를 사용하지만, 나도 몰라, 양식을 제출 한 후 예를

<p>Your favorite band? <input type="text" name="field28"></p> 
<p>Your Favorite color? <input type="text" name="field30"></p> 

를 들어, 필드 * 아이디 *입니다 $ _POST [field28] (또는 필드의 숫자에 관계없이).

<? 
while($field = $query_formfields->fetch(PDO::FETCH_ASSOC)) 
{ 
$id = $field[id]; 

//this doesn't work!! 
$user_input = $_POST[field$id]; 

//validation comes here 
} 
?> 

누군가 나를 도울 수 있다면 정말 고맙습니다!

답변

11

추가 일부 인용 :

$user_input = $_POST["field$id"]; 
나는 형태의 PHP의 배열 구문을 활용 좋을 것
+0

좋아 이제 내가 바보가 된 기분, 덕분에 작품을! – dirk

5

:

<input type="text' name="field[28]" /> 

당신은 $_GET['field'][28]

+0

훨씬 좋은 솔루션 인 다음 프로젝트에서이를 확실히 활용할 수 있는지 몰랐습니다. 현재 양식 웹 사이트의 프런트 엔드는 양식 필드 이름을 기반으로하는 모든 종류의 jquery 작업과 함께 이미 개발되어 있으므로 필드 이름을 변경하는 것은 번거로운 작업입니다. Amber가 제안한대로 코드를 사용하면 어떤 단점이 있습니까? – dirk

+1

@Dirk 아니, Amber의 솔루션에 전혀 문제가 없습니다. '$ id' 변수로 특정 이름을 이미 지정할 수있게되어 모든 설정이 이루어져야합니다. 만약 당신이'$ id'를 가지지 않았다면, 내 솔루션은 모든 값을 잡아주는 배열처럼'$ _POST [ 'field']'를 반복하도록 허락 할 것입니다. –

3
$user_input = $_POST['field'.$id]; 
2

와 PHP는이 액세스 할 수 있습니다의 첫 번째 부분에 string을 사용하고 있다는 것을 기억하십시오.이름이므로 다음과 같이 시도하십시오 : $user_input=$_POST['field'.$id];. 또한 , 나는 모든 데이터를 검색하는 array로 호출 제안 :

<?php 
    $user_inputs=array(); 
    while($field=$query_formfields->fetch(PDO::FETCH_ASSOC)) { 
     $id=$field['id']; 
     $user_inputs[]=$_POST['field'.$id]; 
    } 
?> 
관련 문제