2014-04-23 2 views
0

여러 번 값드롭 다운 목록을 보여주는 내가 PHP에서 배열을

<html> 
<head> 
</head> 
<body> 
<form method="post" action="test.php"> 
<select name="feature" id="Feature"> 
     <?php 
     $i=0; 
     foreach($newFeature as $feat) 
     { 
      ?> 
     <option value="<?php echo $feat;?>"><?php echo $newFeature[$i];?></option> 
      <?php 
     $i++; 
     } 
     ?> 
</select> <input type="submit" name="submit" value="Test"> 
</form> 
</body> 
</html> 

드롭 다운 목록에 포함을 값은 두 번입니다. 배열을 한 번 탐색하고 값을 표시 한 후에 다시 코드가 값을 가로 지르고 다시 표시합니다.

내가 뭘 잘못하고 있니? 안내하십시오.

+0

$ newFeature를 정의한 곳 ??? – Jenz

+0

배열입니다 [newFeature] (http://pastebin.com/cdvsD8mz) – Satish

+1

그래, 어디 있니? 또한 인덱스 $ i를 사용하는 경우 foreach를 사용하는 것이 무엇입니까? $ newFeature가 차원 배열이 아니라면 (이 경우 크기 배열 인 경우 제대로 액세스하지 못하는 경우) $ feat가 $ newFeature [$ i와 같기 때문에 동일한 값을 두 번 인쇄합니다 ] – briosheje

답변

0

$ newFeature 배열을 보여주세요. 또한 $ i 변수가 필요한 이유는 무엇입니까?

$newFeature[$i] 
+0

$ newFeature - (http://pastebin.com/cdvsD8mz) – Satish

0

다음은 목록을 생성하는 더 깨끗한 방법이며 각 방법을 잘못 사용하는 방법입니다.

<form method="post" action="test.php"> 
    <select name="feature" id="Feature"> 
    <?php foreach($newFeature as $feat): ?> 
     <option value="<?php echo $feat; ?>"><?php echo $feat; ?></option> 
    <?php endforeach; ?> 
    </select> 
    <input type="submit" name="submit" value="Test">    
</form> 
+0

이 값을 두 번 표시합니다.: – Satish

+0

array_unique() 함수를 사용하려고 할 수 있습니다. 어쨌든 배열이 게시 된 배열 일 경우에는 필요하지 않습니다. foreach (array_unique ($ newFeature) as $ feat) – EveryWell

1

제 생각으로는 foreach를 for 루프와 혼동하는 경우가 있습니다.

$ newFeature [$ i] 또는 $ feat를 말하면 실제로 같은 것을 참조합니다.

따라서

,이 시도 : 당신이 foreach 계산에 대한 필요성을 사용하는 경우

<html> 
<head> 
</head> 
<body> 
<form method="post" action="test.php"> 
<select name="feature" id="Feature"> 
     <?php 
     foreach($newFeature as $feat) 
     { 
      ?> 
     <option value="<?php echo $feat;?>"><?php echo $feat;?></option> 
      <?php 
     } 
     ?> 
</select> <input type="submit" name="submit" value="Test"> 
</form> 
</body> 
</html> 
0

당신이 $ newFeature [$ I]를 사용하여 $feat 대신

<?php 
foreach($newFeature as $feat) 
{ 
    ?> 
<option value="<?php echo $feat;?>"><?php echo $feat;?></option> 
    <?php 
    } 
?> 
0

를 사용해야의 잘못된 방법입니다 foreach 루프를 사용합니다. 배열의 스냅 샷을 게시하거나 다음을 시도하십시오.

디버깅 할 수

와 foreach 문을 사용하고 코드를 디버깅하기 전에

  1. 인쇄 문제에게 $ 된 새로운 기능의 배열을 바로 잡기.

    또는

2.Add foreach는 루프

<?php $newFeature = array_unique($newFeature); ?> 

문제를 해결할 수있는이 방법의 앞에 다음 줄

. 첫 번째 제안을 사용하고 코드를 디버깅하는 것이 좋습니다.

관련 문제