Добрый день всем Помогите убрать ошибку, пожалуйста. Этот скрипт взят из учебника, но тут ошибка, а как её исправить - не могу понять - убил уже 3 часа.. И это при том, что это пример рабочий должен быть - он для наглядности вставлен, а не для упражнения и тут оказалась ошибка. Ругается на: <select name="surname"> <?php selectItems($names, $_REQUEST['surname']); ?> </select><br> Notice: Undefined index: surname in ***** on line 34 PHP: <!DOCTYPE html> <html> <head> <title>Test</title> </head> <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 = [ "Weaving" => "Hugo", "Goddard" => "Paul", "Taylor" => "Robert" ]; if (isset($_REQUEST['ab'])) { $name = $names[$_REQUEST['ab']]; echo "Вы выбрали: {$_REQUEST['ab']} , {$name} "; } ?> <?php print_r($names); ?> <form action="" method="POST"> Выберите имя: <select name="ab"> <?php selectItems($names, $_REQUEST['ab']); ?> </select><br> <input type="submit" value="Узнать фамилию"> </form> </body> </html>
Ты видишь в своём коде упоминание слова "surname"? И мы нет. Значит это не тот файл или тот, но ты удалил именно ту часть, которая имеет значение.
ты вернул значение из функции в никуда скорее всего в книге был шоттег <?= который ты заменил на <?php и вообще PHP: <?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>' . PHP_EOL; } return $text; } $names = [ "Weaving" => "Hugo", "Goddard" => "Paul", "Taylor" => "Robert" ]; if (isset($_REQUEST['ab'])) { $name = $names[$_REQUEST['ab']]; $selected = 'Вы выбрали: ' . $_REQUEST['ab'] . ' ,' . $name; } //print_r($names); ?> <!DOCTYPE html> <html> <head> <title>Test</title> </head> <body> <?php echo !empty($selected) ? '<p>' . $selected . '</p>': '';?> <form action="" method="POST"> <p>Выберите имя: <select name="ab"> <?php echo selectItems($names, $_REQUEST['ab']); ?> </select> </p> <p><input type="submit" value="Узнать фамилию"></p> </form> </body> </html>
@Valick, да, я даже не посмотрел на значение $ch До того, что пробел может быть в $ch, дошел потом чисто теоретически. Но ты меня опередил.