2013-03-23 3 views
1

Я хотел бы извлечь все значения, соответствующие организациям, которые попадают в раскрывающееся меню в качестве параметров организации, но теперь отображается только последнее значение oraganisation выпадающий в качестве опции вот мой кодпреобразовать значения из json в drop down

<?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> 

ответ

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> 

Выход http://codepad.viper-7.com/YqTXM4

выход для строительстваhttp://codepad.viper-7.com/Whv8ID

для размещенияhttp://codepad.viper-7.com/tE0SVw

+1

совершенен, я приму ответ вы оба .thank вы – user2201395

+0

@ user2201395 Рад это помогло .. :). Но вы можете принимать только один ответ не одновременно.: D –

+0

@ user2201395 См. Отредактированный ответ для выпадающего меню. –

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"}]'); 
    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>'; 
?> 
+1

wow, работал как шарм – user2201395

+0

@Yogesh как я могу принести выпадение для обоих зданий и мест. Спасибо – user2201395