[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Проблема со списком
sixpoundeeer
Здраствуйте! Я новичок в PHP и столкнулся со следующей проблемой. Написал код:

Код

<body>

<?

$data = array("Китай" => "1.300.000", "Индия" => "1.000.000", "США" => "300.000", "Индонезия" => "238.000", "Бразилия" => "184.000");

?>

<center>
<table width="400"  border="0" cellspacing="0" cellpadding ="1">
 <tr>
   <th scope="col" colspan=2><h2>Население стран мира</h2></th>
 </tr>
 <tr>
   <td colspan=2>Выберите страну из списка:</td>
 </tr>
 <tr>
   <td colspan=2>
   
<form>
<select name="strana">
<? foreach ($data as $country=>$population){ ?>
<option value="<?=$country ?>"><? echo $country;
} ?>
<input type="submit" name="OK" value="Посмотреть">
</form>

   </td>
 </tr>
 <tr>
   <td colspan=2>
<?

if (isset($_REQUEST['OK'])){
echo "Население страны {$_REQUEST['strana']} составляет: <font color='#3366FF'>{$data[$_REQUEST['strana']]}</font>";
}

?>
   </td>
 </tr>
</table>
</center>

</body>


Вывод на экран при выборе, например, США и нажатия на кнопку:

user posted image

Как видите, внизу, как и надо пишет "Население страны США", но в самом списке пишет "Китай". Так вот, как сделать так, чтоб при выборе США, в самом списке после нажатия на кнопку тоже писало США?

И второй вопрос.
Если в строке:

Код
<option value="<?=$country ?>"><? echo $country;


вместо <?=$country ?> написать <? $country ?>, программа будет выполняться не правильно, результатом выполнения будет "Население страны составляет:". Так в каких случаях нужно обьязательно использовать "<?=", а в каких можна и просто "<?".

Заранее спасибо, жду ответа.



Спустя 3 часа, 37 минут, 47 секунд (26.10.2009 - 18:56) haZe написал(а):
PHP
if($_REQUEST['strana'] == $country) echo "checked";

Спустя 24 минуты, 16 секунд (26.10.2009 - 19:21) sixpoundeeer написал(а):
Вместо checked поставил selected (так как выпадающий список) и все заработало, спасибо.

Жду ответа по поводу <? и <?= smile.gif
В чём разлачие?

Спустя 11 минут, 50 секунд (26.10.2009 - 19:32) glock18 написал(а):

Спустя 31 минута, 6 секунд (26.10.2009 - 20:03) sixpoundeeer написал(а):
glock18

Написано:

Note: This directive also affects the shorthand <?= , which is identical to <? echo . Use of this shortcut requires short_open_tag to be on.

Примечание: Эта директива также влияет на сокращение <?=, Которое идентично записи <?. Для использования этого сокращения, директива short_open_tag должна быть включена.

Если они идентичны, то почему в примере, который я привел выше в одной из строк <? не работает, в то время как <?= наоборот?

Спустя 4 минуты, 35 секунд (26.10.2009 - 20:08) Gabriel написал(а):
sixpoundeeer
ну наверное там знак равенства работает как ечо

Спустя 12 минут, 14 секунд (26.10.2009 - 20:20) glock18 написал(а):
sixpoundeeer
я чего-то не заметил вот этого:
Цитата
Примечание: Эта директива также влияет на сокращение <?=, Которое идентично записи <?. Для использования этого сокращения, директива short_open_tag должна быть включена.


Цитата
Note: This directive also affects the shorthand <?= , which is identical to <? echo . Use of this shortcut requires short_open_tag to be on.

=>

Примечание: эта директива (short_open_tag) так же затрагивает сокращение <?=, которое идентично <? echo... далее по тексту.

Спустя 1 минута, 35 секунд (26.10.2009 - 20:22) kirik написал(а):
sixpoundeeer почему при переводе ты опустил echo?

Спустя 33 секунды (26.10.2009 - 20:22) sixpoundeeer написал(а):
Да, пропустил мимо глаз, думал "<?=" идентично "<?", а не "<? echo".
Вобщем все понял, всем спасибо.

Спустя 23 дня, 14 часов, 56 минут (20.11.2009 - 11:18) kinomuza написал(а):
Как сделать так, что бы выпадающий список автоматически отправлял данные после выбора одного пункта (без нажатия на кнопку)?


_____________
Как много веселых ребят. И все делают велосипед. А один из них как-нибудь утром. Придумает порох. (Виктор Цой)
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.