Pavel666
Всем привет.php изучать начал недавно,поэтому тапками не кидаться.В общем суть задачи такая,пользователь выбирает жанр фильма и ему приходят названия.посмотрите код так можно делать или нет.
PHP:
<? $comedy = array(«Пьяный мастер»,«Один дома»,«Факеры»,«Американский пирог»,«Одиночки»,«Блондинка в законе»,«Мастер3»,«Спящий в сиетле»); if($_POST[‘send’]){ $sel = $_POST[‘select’]; switch ($sel==«Комедия»){ echo $comedy[0]; echo «<br />»; echo $comedy[1]; break; } } if($_POST[‘send’]){ $sel = $_POST[‘select’]; switch ($sel==«Боевик»){ echo $boy[0]; break; } } if($_POST[‘send’]){ $sel = $_POST[‘select’]; switch ($sel==«Фантастика»){ echo $fan[0]; break; } } if($_POST[‘send’]){ $sel = $_POST[‘select’]; switch ($sel==«Ужасы»){ echo $horor[0]; break; } } ?> <!DOCTYPE HTML PUBLIC «-//W3C//DTD HTML 4.01 Transitional//EN» «[URL]http://www.w3.org/TR/html4/loose.dtd[/URL]»> <html> <head> <meta http-equiv=»Content-Type» content=»text/html; charset=utf-8″> <title>Untitled Document</title> </head> <body> <h2><b>Выбрать жанр</b></h2> <form name = «myform» action=»kino.php» method=»post»> <table> <tr> <td>Name</td> <td> <input type=»text» name=»select»> </td> </tr> <tr> <td> <input type=»submit» value=»Send» name=»send»> </td> </tr> </table> </form> </body> </html>От модератора: Оформляй код кнопкой </>
Artur_hopf
PHP:
<?php $array = [ ‘comedy’ => [«Пьяный мастер»,«Один дома»,«Факеры»,«Американский пирог»,«Одиночки»,«Блондинка в законе»,«Мастер3»,«Спящий в сиетле»], ‘boy’ => [«Скалалаз»,«Терминатор»,«Бои с тенью»,«Разборка»], ‘fan’ => [«Беглец»,«Бегущий человек»,«Пришельцы»], ‘horor’ => [«Фредди против Джейсона»,«Кошмар на ул.Вязова»,«Экзарцист»] ]; { foreach( $array[ $_POST[‘select’] ] as $item ) { echo $item . PHP_EOL; } }
Artur_hopf
PHP:
<?php $array = [ ‘Комедия’ => [«Пьяный мастер»,«Один дома»,«Факеры»,«Американский пирог»,«Одиночки»,«Блондинка в законе»,«Мастер3»,«Спящий в сиетле»], ‘Боевик’ => [«Скалалаз»,«Терминатор»,«Бои с тенью»,«Разборка»], ‘Фантастика’ => [«Беглец»,«Бегущий человек»,«Пришельцы»], ‘Ужасы’ => [«Фредди против Джейсона»,«Кошмар на ул.Вязова»,«Экзарцист»] ]; $option = »; foreach( $array as $key => $item ) { $option .= «<option>{$key}</option>»; } $select = «<select name=»select»>{$option}</select>»; $films = »; { foreach( $array[ $_POST[‘select’] ] as $item ) { $films .= $item . ‘<br>’; } } ?> <!DOCTYPE HTML> <html> <head> <meta http-equiv=»Content-Type» content=»text/html; charset=utf-8″> <title>Untitled Document</title> </head> <body> <h2><b>Выбрать жанр</b></h2> <form name=»myform» action=»» method=»post»> <table> <tr> <td>Name</td> <td> <?=$select?> </td> </tr> <tr> <td> <input type=»submit» value=»Send» name=»send»> </td> </tr> </table> </form> <?=$films?> </body> </html>
Pavel666
Спасибо.а первоначальный код чем плох?
MouseZver
Всему
https://github.com/MouseZver/My-garbage-code/blob/master/2013/twwk.ts6.ru/designer.lib.php
roboformation
1) Форматирование некоторых участков php-кода (меньшее из зол)
2) Нет нормальной проверки пользовательских данных
3) Мало смысла плодить переменные для каждого массива, когда можно похожую информацию запихнуть в один двумерный массив (вам это показали). Так улучшается навигация
4) switch-блоки некорректно использованы
5) Перемешивать массив необязательно, достаточно получить рандомный ключ массива
https://www.php.net/manual/ru/function.array-rand.php
Ну и там по мелочи
Pavel666
Всем спасибо за ответы.