Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> SELECT в ПХП 
:(
    Опции темы
kilogram
Дата 29.3.2012, 20:27 (ссылка)    | (голосов:3) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 139
Регистрация: 19.3.2012

Репутация: -1
Всего: 0



Код
<html><body>
<?php
function selectItems($items, $selected=0) {
$text = "";
    foreach($items as $k=>$v){
        if($k == $selected) $ch = " selected"; else $ch = "";
        $text .= "<option$ch value='$k'>$v</option>\n";
    }    
return $text;    
}

$names = array(
"Weaving" => "Hugo",
"Goddard" => "Paul",
"Taylor"  => "Robert",
);

if(isset($_REQUEST['surname'])){
$name = $names[$_REQUEST['surname']];
echo "Вы выбрали: {$_REQUEST['surname']} - {$name} ";
}
?>
<!-- Форма для выбора имени человека -->
<form action="<?=$_SERVER['SCRIPT_NAME']?>" method="post">
Выберите имя: 
    <select name="surname">
    <?=selectItems($names, $_REQUEST['surname'])?>
    </select><br>
<input type="submit" value="Узнать фамилию">
</form>


</body></html>






































































<?php
/*
$p = explode(" ", "1, 2, 5, 4, 8");
for ($i = 0; $i < count($p); $i++) {
     if (strlen($p[$i]) > 1 && $p[$i]{1} == ',')
         $p[$i]{1} = ' ';
   echo $p[$i].' ';
 }
*/?>   

<?php
/*

$dat = date("d.m y");
$tm = date("h:i:s"); //Часы, минуты, секунды
echo "Текущая дата: $dat года <br />\n";

echo "Текущее время: $tm <br />\n";
echo "А вот квадраты и кубы первых 5 натуральных чисел<br />\n";
for($i=1; $i<=5; $i++){
    echo "<li>$i в квадрате = ".($i*$i);
    echo ",$i в кубе = ".($i*$i*$i)."\n";
}
*/
?>


Скажите ,вот когда мы написали "<select name="surname">"
это равносильно мы создали переменную $surname с которой можем делать что угодно? Ещё, немного не понятно, каким образом попадают в глобальный ассрциативный массив REQUEST значения surname(Фамилия) с массива $names? Если да, каким образом?

PM MAIL   Вверх
ElGuapo
Дата 29.3.2012, 22:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Добрый
*


Профиль
Группа: Участник
Сообщений: 101
Регистрация: 1.7.2006

Репутация: нет
Всего: 3



Нет, не равносильно. Это вообще html-код, никаких перемененых PHP там не задается. При отправке формы значение поля с названием "surname" попадает в элемент массива $_REQUEST['surname'].

PM MAIL   Вверх
kilogram
Дата 29.3.2012, 22:20 (ссылка)    | (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 139
Регистрация: 19.3.2012

Репутация: -1
Всего: 0



А в этой строке: <?=selectItems($names, $_REQUEST['surname'])?>

$names - это в первый параметр функции подставился сам массив name который описан выше? В массиве цикл форич он возвращает за первым разом в первый параметр  $names попадает значение "Weaving", 2 раз - "Goddard", 3-ий раз - "Taylor" после отправки формы? Во второй параметр также после отправки формы из-за цикла формч, тоже 3 раза во второй параметр попадают значения ключей цикла форич?
PM MAIL   Вверх
Vardoulacha
Дата 30.3.2012, 05:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 184
Регистрация: 11.8.2005

Репутация: 7
Всего: 8



kilogram, вы полностью смешали понятия HTML и PHP? первый выполняется в браузере на компьютере клиента, второй на сервере, стоит учится разделять серверную логику от визуальной части, в браузере исполняется HTML который создается в PHP а затем пользователь что-то там делает и запускает обратную связь в виде формы и тогда серверная часть получает данные которые указал пользователь
PM MAIL   Вверх
ElGuapo
Дата 30.3.2012, 09:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Добрый
*


Профиль
Группа: Участник
Сообщений: 101
Регистрация: 1.7.2006

Репутация: нет
Всего: 3



Функция selectItems() формирует на основе массива $names строки HTML-элемента <select>, второй параметр нужен, чтобы выделить среди них (атрибутом "selected") тот, что пользователь перед этим сам выделил и отослал формой. Без проверки $_REQUEST после отправки формы (и, соответственно, перезагрузки страницы) выделенный элемент сбрасывался бы.

Это сообщение отредактировал(а) ElGuapo - 30.3.2012, 09:12
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0662 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.