Я пытаюсь создать свою первую функцию в PHP, выпадающую. Он почти работает, но когда я отправляю/публикую данные, параметры с пробелом в нем будут показывать только первое слово на выходе.Функция раскрывающегося списка теряет слова после пробела в представленном выпуске
В примере у меня есть «Имя» в качестве опции в выпадающем списке. Когда я нажимаю submit, вывод будет только «первым». Когда я меняю «Имя» на «Первое имя», он работает, а результат - «Имя». Поэтому я думаю, что мне нужно добавить кавычки где-нибудь в коде, чтобы он обрабатывался как строка?
Надеюсь, кто-то может мне помочь, я настолько близок к тому, что хочу.
<!DOCTYPE HTML>
<html>
<body>
<?php
include('db_functions.php');
function clean_input($data) {
$data = trim($data);
$data = stripslashes($data);
$data = htmlspecialchars($data);
return $data;
}
if ($_SERVER["REQUEST_METHOD"] == "POST") {
$fName = clean_input($_POST['first_name']);
}
//drop down function
function dropdown($name, $options) {
$dropdown = '<select type="text" name='.$name.'>'."\n";
$rows = $options;
if($rows === false) {
$error = db_error();
}
$totalrows = count($rows);
for ($x = 0; $x < $totalrows; $x++) {
$dropdown .= '<option value=' . $rows[$x][$name] . '>' . $rows[$x][$name] . '</option>'."\n";
}
$dropdown .='</select>'."\n";
return $dropdown;
}
echo '<form action="' . htmlspecialchars($_SERVER["PHP_SELF"]) . '" method="post">';
//start dropdown
echo 'First Name:';
$name = 'first_name';
$options = db_select("SELECT DISTINCT first_name FROM nametable GROUP BY first_name ORDER BY first_name ASC LIMIT 20");
echo dropdown($name, $options);
//end dropdown
echo '<input type="submit" name="submit" value="Submit">';
echo '</form>';
echo $fName;
?>
</body>
</html>
Не могли бы вы добавить код 'clean_input' функции? – Tomasz
Спасибо. Я добавил функцию clean_input в код. – TGK