sixpoundeeer
26.10.2009 - 16:18
Здраствуйте! Я новичок в 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>
|
Вывод на экран при выборе, например, США и нажатия на кнопку:
Как видите, внизу, как и надо пишет "Население страны США", но в самом списке пишет "Китай". Так вот, как сделать так, чтоб при выборе США, в самом списке после нажатия на кнопку тоже писало США?
И второй вопрос.
Если в строке:
Код |
<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 (так как выпадающий список) и все заработало, спасибо.
Жду ответа по поводу <? и <?=
В чём разлачие?
Спустя 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 написал(а):
Как сделать так, что бы выпадающий список автоматически отправлял данные после выбора одного пункта (без нажатия на кнопку)?
_____________
Как много веселых ребят. И все делают велосипед. А один из них как-нибудь утром. Придумает порох. (Виктор Цой)