Я получаю эти строки в сети и просто создал для нее имя функции. Проблема в том, что она больше не работает, и я не знаю, почему, уже пробовал вещи, но ничего. Может кто-то мне помочь, пожалуйста?
Код:
<?php
require 'PDOClasses/connection.php';
error_reporting(E_ALL);
ini_set('display_errors', 1);
function ShowCategories() {
$query = $db->query("SELECT id, name FROM categories ORDER BY name ASC");
$option = '';
while($row = $query->fetch(PDO::FETCH_ASSOC)) {
$option .= '<option value = "'.$row['id'].'">'.$row['name'].'</option>';
}
}
?>
Так я называл:
<select id="category" name="category" tabindex="16" required>
<?php echo $option; ?>
</select>
Вот как я сейчас звоню:
<select id="category" name="category" tabindex="16" required>
<?php ShowCategories(); ?>
</select>
Вы не возвращаете значение внутри функции или не эхом.
function ShowCategories() {
$query = $db->query("SELECT id, name FROM categories ORDER BY name ASC");
$option = '';
while($row = $query->fetch(PDO::FETCH_ASSOC)) {
$option .= '<option value = "'.$row['id'].'">'.$row['name'].'</option>';
}
return $option;
}
Затем, вызывая
<select id="category" name="category" tabindex="16" required>
<?php echo ShowCategories(); ?>
</select>
или вы можете непосредственно отбросить $option
внутри самой функции. Подобно
echo $options;
вместо того, чтобы возвращать его.
$ db не определено в вашей функции. Либо передайте его в качестве аргумента, либо используйте "глобальный"
и добавьте echo $ option в конце
Проблема здесь заключается в том, что вы не печатаете содержимое на страницу HTML. Таким образом , после создания строки HTML вам нужно будет
echo
-строку.
ваш код будет выглядеть так.
<?php
function ShowCategories() {
$query = $db->query("SELECT id, name FROM categories ORDER BY name ASC");
$option = '<option value=''>--Please select--</option>';
while($row = $query->fetch(PDO::FETCH_ASSOC)) {
$option .= '<option value = "'.$row['id'].'">'.$row['name'].'</option>';
}
echo $option;
}
?>
в HTML теперь вы можете использовать существующий синтаксис.
<select id="category" name="category" tabindex="16" required>
<?php ShowCategories(); ?>
</select>
Он работает так
<?php
function ShowCategories() {
require 'PDOClasses/connection.php';
error_reporting(E_ALL);
ini_set('display_errors', 1);
$query = $db->query("SELECT id, name FROM categories ORDER BY name ASC");
$option = '<option value="">Selecione uma categoria</option>';
while($category = $query->fetch(PDO::FETCH_ASSOC)) {
$option .= '<option value = "'.$category['id'].'">'.$category['name'].'</option>';
}
echo $option;
}
<?php ShowCategories(); ?>