2012-10-30 17 views
0

是否可以從CSV文件創建HTML中的選擇菜單?我不知道如何去做這件事。CSV文件構建select元素

所以我有一個CSV有兩列和多個值,有沒有什麼辦法可以通過PHP循環瀏覽CSV文件並輸出HTML,到目前爲止我都試過。

$row = 1; 
    if (($handle = fopen($_SERVER['DOCUMENT_ROOT']."/service/regions.csv", "r")) !== FALSE) { 
     while (($data = fgetcsv($handle, 133, ",")) !== FALSE) { 
      $num = count($data); 
      $row++; 
      for ($c=0; $c < $num; $c++) { 
       echo "<option value='".$data[$c]."'>".$data[$c]."</option>"; 
      } 
     } 
     fclose($handle); 
    } 

然而,這是給下面的輸出,

<select> 
    <option value='AB'>AB</option> 
    <option value='Aberdeenshire'>Aberdeenshire</option> 
    <option value='AG'>AG</option> 
    <option value='Angus'>Angus</option> 
    <option value='AM'>AM</option> 
    <option value='Armagh'>Armagh</option> 
</select> 

我想是什麼讓這樣的輸出,

<option value="AB">Aberdeenshire</option> 

我在哪裏去了?

+0

「AB」, 「阿伯丁」, 「公司」, 「Agath」 等 – Udders

回答

1

所有你需要的是

$handle = fopen(__DIR__ . "/service/regions.csv", "r"); 
echo "<select>"; 
if ($handle !== FALSE) { 
    $row = 0; 
    while (($data = fgetcsv($handle, 133, ",")) !== FALSE) { 
     printf('<option value="%s">%s</option>', $data[0], $data[1]); 
    } 
    fclose($handle); 
} 
echo "</select>"; 

輸出

<select> 
    <option value="AB">Aberdeenshire</option> 
    <option value="AG">Angus</option> 
    <option value="AM">Armagh</option> 
</select> 
1

$data[$c][0]將返回第一列,$data[$c][1]將返回第二列等。因此,只需將$data[$c]替換爲列的正確變量即可。