2016-09-17 2 views
0

PHP 파일을 만드는 중입니다. 한 가지 예를 들어 보겠습니다 (예제 1). 알 수있는대로 Array는 목록과 비슷하며 목록에 항목을 입력하고 싶습니다 (예제 2). 그러나 배열의 항목 수는 HTML 양식 (예 3)을 통해 입력 된 숫자로 결정해야합니다.html 폼 입력을 기반으로 배열의 항목 수를 설정하는 방법은 무엇입니까?

예 1 :

<?php 
$a=array("red","green"); 
array_push($a,"blue","yellow"); 
print_r($a); 
?> 

</body> 
</html> 
</code>  

예 2 :

<!DOCTYPE html> 
<html> 
<body> 

<?php 
$a=array("red","green"); 
array_push($a,"$_POST["color3"]","$_POST["color4"]"); 
print_r($a); 
?> 

</body> 
</html> 

예 3

<ol> 
<form action="finished.php" method="post"> 
<li><input type="text" name="color3"></li> 
<li><input type="text" name="color4"></li> 
</form> 
</ol> 

편집 : 나는이 모든 형식이 올바르게 희망하고 질문을 이해하십시오. 다음과 같이 반복하십시오. 첫 번째 페이지는 양식으로 만 비어 있습니다. 임의의 숫자 (X)를 입력하는 단일 입력 상자. 두 번째 페이지에 같은 줄이 계속 반복됩니다 (이전 페이지의 번호 X에 따라 다름). 줄의 길이는 다음과 같습니다. <li><input type="text" name="color Y"></li>
Y는 X까지 도달 할 때까지 1에서 무한히 증가합니다. 마지막 페이지가 목록 (배열?)에 모두 인쇄됩니다.

예 : 첫 번째 페이지에는 숫자 3을 입력합니다. 두 번째 페이지에는 선택한 색상의 이름 인 빨강, 파랑, 노랑색을 입력 할 수있는 3 개의 상자가 있습니다. 마지막 페이지에는 빨강, 파랑 및 노랑색의 세 가지 색상 목록이 표시됩니다.

희망이 도움이됩니다.

+0

서식이 좋지 않습니다. : | –

+0

해결되었습니다! 미안합니다. –

+1

글쎄, 포맷팅이 좋다. 나는 정말로 당신이 원하는 것을 이해하지 못한다. :) –

답변

1

에 내가 무엇을 원하는 (번 이상 읽은 후) 그것을 가지고 생각합니다. 내가 제대로 이해하면 알려줘. 질문에 쓴 것처럼 3 개의 다른 파일을 사용한다고 가정 해 봅시다.

file1.php (1 입력하고 전송 버튼 1 간단한 형태)

<form action="file2.php" method="post"> 
    <input type="text" name="amount" placeholder="The amount of elements"> 
    <input type="submit" value="Enter"> 
</form> 

file2.php ($_POST 있는지 확인하고, 값은 정수)

if (!empty($_POST['amount'])) { 
    if (!is_int($_POST['amount'])) { 
     exit('Not an integer'); 
    } 
    ?> 
    <form action="file3.php" method="post"> 
    <?php 
    for ($i = 0; $i < $_POST['amount']; $i++) { 
     echo '<input type="text" name="colors[]" placeholder="Enter color name"><br>'; 
    } 
    ?> 
    <input type="submit" value="Done"> 
    </form> 
    <?php 
} else { 
    exit('Only $_POST method is allowed.'); 
} 

file3.php (결과를 모두 가져 와서 변수에 배열 저장)

if (!empty($_POST)) { 
    $colors = $_POST['colors']; 
    foreach ($colors as $color => $value) { 
     echo '<li>'.$value.'</li>'; 
    } 
    exit; 
} else { 
    exit('Only $_POST method is allowed.'); 
} 

보안을 추가 할 수 있습니다 (비어 있지 않은지 확인하는 등).하지만 기본적인 것들만 추가하고 있습니다.

+0

파일에서 라인 3 + 4를 변경했습니다. 2.php'{ exit ('정수가 아님'); } '을 삭제하십시오. 그리고 그것은 번호를 입력함으로써 나를 통해 나를 허용하고, 그것을 잘 만듭니다. –

+0

이것은 좋은 일입니다, 우리는 중간에 있지만 내 잘못입니다. 나는 왜 위의 배열을 말했는지 확신 할 수 없다. 목록에 입력하기 위해 3 페이지를 원한다. 그래서 내 예제 3에서'

  • 줄이 필요합니다. 그래서 ** 2 페이지 **는 우리가 _3_ 색을 쓸 수 있도록 해줍니다^예를 들어^3 페이지에 ** 우리는이 '
  • '의 _3_ 행을 원합니다. 말이 돼? –

    +0

    @WilliamBachynsky 그러면 다음과 같이 작성할 수 있습니다 :'foreach ($ colors => $ value) {echo '

  • '. $ value. '
  • '; }'모든 색상 목록을 출력합니다. –

    2
    <ol> 
    <form action="finished.php" method="post"> 
    <li><input type="text" name="data['color3']"></li> 
    <li><input type="text" name="data['color4']"></li> 
    </form> 
    </ol> 
    

    다음 finished.php

    $_POST['data']; 
    
        print_r($_POST);//print out the whole post 
        print_r($_POST['data']); //print out only the data array 
    
    +0

    기본 페이지에서 편집을 참조하십시오. –

    관련 문제