2014-03-19 4 views
1

for 루프를 사용하여 배열에서 변수를 선언하는 방법. 내 페이지에 3 개의 입력 필드가 있으므로 제출 버튼을 누르면 다음 코드 행을 처리해야합니다. 내 HTML 페이지에는 question1, question2 및 question3이라는 필드가 있습니다.for 루프 in for 루프를 사용하여 PHP 변수를 선언하십시오.

다음은 process.php 파일의 코드입니다. 그것은 몇 가지 이유로 작동하지 않습니다, 나는 여기에 몇 가지 실수가 있다고 가정하지만 그들을 찾을 수 없습니다. 우선 들어

<?php 

$question = array(); 
for($j=1; $j<4; $j++) { 
    $question[j] = $_POST['question[j]']; 

$result; 
$n=1; 

if($question[j] != "") { 
    $result = $n.'): '.$question[j].'<br/><br/>'; 
    $n++; 
} 
} 

echo $result; 

?> 
+5

변수 이름의 접두어는'$'입니다. 당신의 리터럴'j'는 상수로 해석 될 것입니다. 일들이 작동하지 않을 때마다'error_reporting'을 유효하게하십시오. – mario

+0

그리고 입력 필드 목록에 액세스하려면 HTML 양식의 배열 이름 구문을 사용하는 것이 좋습니다. mario

답변

1

는, 배열은 제로 색인, 그래서 당신이 원하는 생각 :

$_POST['question[j]'] 
:

제외
for($j=0; $j<3; j++) 

그 형성이 j의 가치를 평가하지 않습니다

다음과 같은 것을 원할 수도 있습니다.

$_POST["question$j"] 
위의 색인을 변경 한 경우 요소 1 대신 다음 공의로 시작하는 이름 때문에

그러나는 해당 고려해야 것 :

$_POST['question' . $j+1] 
2
<?php 

$question = array(); 
$result = ""; 

for($j=1; $j<4; j++) { 
    $question[$j] = $_POST["question$j"]; 

    if($question[$j] != "") { 
     $result .= $j.'): '.htmlentities($question[$j]).'<br/><br/>'; 
    } 
} 

echo $result; 

?> 

그렇게하지 않지만 배열이 필요합니다.

<?php 
$result = ""; 

for($j=1; $j<4; j++) { 
    $result .= $_POST["question$j"]!="" ? htmlentities($_POST["question$j"]).'<br/><br/>':'';   
} 

echo $result; 
?> 
0

당신은 PHP 코드를 다음과

<input type="text" name="question[a]" /> 
<input type="text" name="question[b]" /> 
<input type="text" name="question[c]" /> 

HTML 코드를 사용할 수 있습니다 :

foreach($_POST["question"] as $key => $value) 
{ 
    // $key == "a", "b" or "c" 
    // $value == field values 
} 

하면 입력을 소독하는 것을 잊지 마십시오!