1

組織のオプションとしてドロップダウンメニューに表示される組織に対応するすべての値を抽出したいのですが、ここでのオプションとして、組織の最後の値のみがドロップダウンに表示されています。これが私のコードです。

<?php
$items = json_decode('[{"location":[{"building":   ["Building1"],"name":"Location1"}],"name":"Organization1"},{"location":[{"building":["Building2"],"name":"location2"}],"name":"Organisation2"},{"location":[{"building":["Building3"],"name":"Location3"}],"name":"Organization3"}]');
foreach( $items as $each ){
echo $each->location[0]->building[0];
echo $each->location[0]->name;
echo $each->name;
}
$org=$each->name;
$arr=array($org);
reset($arr);
//print_r($org); 
//$result = count($org);
//echo $result;
while(list(,$value)=each($arr)){
//echo "value:$value<br/>\n";
//$_SESSION['organisation']=$value;
//echo $_SESSION['organisation'];

}?>
<select name="category_id">
<option value=""></option>
<?php
$keys = array_keys($arr);
$count1=count($keys);
echo $count1;
for($i=0; $i<count($arr); $i++)
{?>
<option value="<?php echo $keys[$i]; ?>"><?php echo $arr[$i]; ?></option>
<?php
}
?>
</select>
4

2 に答える 2

1

新しいループ全体を開始するのではなく、最初の foreach を利用してください。テスト済みで、これは機能します:

<?php
    $items = json_decode('[{"location":[{"building":   ["Building1"],"name":"Location1"}],"name":"Organization1"},{"location":[{"building":["Building2"],"name":"location2"}],"name":"Organisation2"},{"location":[{"building":["Building3"],"name":"Location3"}],"name":"Organization3"}]');
    echo '<select name="category_id"><option value=""></option>';
    $stepper = 0;
    foreach($items as $each) {
        $building = $each->location[0]->building[0];
        $name = $each->location[0]->name;
        $final_name = $each->name;
        echo '<option value="'.$stepper.'">'.$final_name.'</option>';
        $stepper++;
    }
    echo '</select>';
?>
于 2013-03-23T04:25:48.700 に答える
0

このコードを使用

<?php
$org = array();
$items = json_decode('[{"location":[{"building":   ["Building1"],"name":"Location1"}],"name":"Organization1"},{"location":[{"building":["Building2"],"name":"location2"}],"name":"Organisation2"},{"location":[{"building":["Building3"],"name":"Location3"}],"name":"Organization3"}]');
foreach( $items as $each ){
$org[]=$each->name;
}
?>
<select name="category_id">
<option value=""></option>
<?php
foreach($org as $key=>$val)
{?>
<option value="<?php echo $key; ?>"><?php echo $val; ?></option>
<?php
}
?>
</select>
于 2013-03-23T04:25:28.907 に答える