2013-12-17 3 views
0

자세히 설명해 드리겠습니다. 나는 첫 번째 PHP 페이지 (이 페이지를 first.php라고 부르도록하자)에서 선택 양식을 가지고있다. 제출 버튼이 있습니다. 나는 $ _POST와 함께 두 번째 페이지 (이 페이지는 sec.php로 설정)에 배열을 잡아두고 PHP 변수로 설정한다. 그러나 인쇄 할 수는 없습니다. 다음은 first.php의 내 코드/마크 업 코드입니다.선택 양식에서 다른 PHP 페이지로 배열을 올바르게 전달하는 방법

<label>Product:</label> 
    <select name="arr[]"> 
     <option value="Mobile">Mobile</option> 
     <option value="Social">Social</option> 
     <option value="Online">Online</option> 
    </select> 

Note = 여기에는 배열이 필요하지 않습니다. 그러나 나는 그것을 이런 방식으로 유지하고 싶다.

<?php 
    $arr= $_POST['arr']; 
?> 

내가 그것을이 HTML 테이블에 인쇄 할 : =

<tr> 
    <td width="200"> <?php echo $url[0]; ?></td> 
    <td width="200"> <?php echo $sMonth[0] . "/" . $sDay[0] . "/" . $sYear[0]; ?></td> 
    <td width="200"> <?php echo $eMonth[0] . "/" . $eDay[0] . "/" . $eYear[0]; ?></td> 
    <td> <?php echo $tBudget[0]; ?></td> 
    <td> <?php echo $dBudget[0]; ?></td> 
    <td> <?php echo $model[0]; ?></td> 
    <td> <?php echo $bid[0]; ?></td> 
    <td> <?php echo $target[0]; ?></td> 
    <td> <?php echo $status[0]; ?></td> 
    <td width="200"> <?php echo $arr[0]; ?></td> 
    <td> <?php echo $tUnits[0]; ?></td> 
</tr> 

참고 다른 모든 변수를 그냥 글씨를 (값

여기 내 코드는 sec.php에 생겼는지 $ arr 변수와 같은 방법과 개념을 사용하여) $ arr 변수 만 인쇄 할 수 있습니다.

내가 뭘 잘못하고 있니?

+0

확인 u는 얻을 루프에 사용할 필요는'쇼를? 어때'var_dump ($ _ POST);'? –

+0

var_dump ($ arr)는 다음과 같이 말합니다 : dasarray (1) {[0] => string (6) "Mobile"} – user3108505

답변

1

변경

<select name="arr[]"> 
... 
<td width="200"> <?php echo $arr[0]; ?></td> 

<select name="arr"> 
... 
<td width="200"> <?php echo $arr; ?></td> 

에 당신은 당신이 여러 옵션을 선택 사실

+0

더 자세히 설명해 주시겠습니까? 배수가 아닙니다. 사용자가 하나의 옵션을 선택하면 해당 옵션이 배열에 놓입니다. – user3108505

+0

@ user3108505 정확히 하나의 값을 전달하기 때문에'arr []'을 선택하지 않아도 PHP에서'arr [0]'대신'$ arr' 만 읽으면됩니다. 그것은 배열이 아닙니다. 업데이트 된 답변을 읽어보십시오. – Leonardo

+0

다른 변수는 같은 개념과 구현을 사용하여 같은 방식으로 구현됩니다. 그들은 모두 – user3108505

0

이있을 때 array naming를 사용하고 싶을 것이다, 아마 그런 뭔가 :

<select name="arr[]" multiple> 
     <option value="Mobile">Mobile</option> 
     <option value="Social">Social</option> 
     <option value="Online">Online</option> 
    </select> 
+0

하지만 "multiple"을 지정하면 3 개의 값이 모두 삽입됩니다. 나는 그것을 원하지 않는다. 선택한 옵션을 첫 번째 요소 위치에만 삽입하고 싶습니다. – user3108505

+0

여러개를 사용해 보았습니다. 여전히 인쇄되지 않습니다. – user3108505

0

배열의 값은`위해서 var_dump ($의 편곡)하는 일이

<form action="<?php echo @$_SERVER['PHP_SELF'];?>" method="POST"> 
 
      <select name="arr[]" multiple> 
 
       <option>Radio</option> 
 
       <option>TV</option> 
 
       <option>Keyboard</option> 
 
       <option>DVD Player</option> 
 
       <option>Screen</option> 
 
      </select> 
 
      <input type="submit" value="GO!"> 
 
     </form> 
 
<?php 
 
[email protected]$_POST['arr']; 
 
$len = count($data); // getting length of ur array that u need to condition ur loop 
 
for($y=0;$y<$len;$y++){ 
 
    echo "$data[$y]"."<br />"; 
 
} 
 
?>

+0

루프를 사용하지 않을 경우 여러 개를 사용할 필요가 없으며 사용자가 여러 값을 선택하게하여 select arr []을 (배열)로, 배열 값을 인쇄하는 가장 좋은 방법은 루핑, 코드는 인쇄 만하면됩니다. arr [0]의 첫 번째 인덱스는 왜 그런지 알아? !! –

관련 문제