[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: почему не выводится return после функции?
nikki4
делаю функцию, чтобы можно было бы выбрать из списка шрифт

<?php

function
fonts_choose(){

echo '<select name="number" size="1">'."\r\n";
$fonts=array('1','2');
foreach ($fonts as $num => $font) {
$selected_font = '';
if ($_POST['number'] == $font) {
$selected_font = 'selected';
return $font;
}
echo "<option value=\"" . $font . "\" " . $selected_font . ">" . $font . "</option>"."\r\n";
}
echo '</select>'."\r\n";;
echo '<input type="submit" name="ok" value="OK" >';

return $font;

}

fonts_choose();
echo $font;
?>

но почему-то ничего не выводит..
в чем ошибка, что не доделано?



Спустя 2 минуты, 42 секунды (3.04.2012 - 11:52) Игорь_Vasinsky написал(а):
если в функции return - то вызов функции
echo fonts_choose();


но здаётся мне ты что то большое хочешь из функции вывестиЮ типа куска формы.

Спустя 1 час, 24 минуты, 44 секунды (3.04.2012 - 13:17) nikki4 написал(а):
немного подправил код.. но почему-то при нажатии на кнопку ничего не выводится
<?php
function
fonts_choose(){
echo '<select name="number" size="1">'."\r\n";
$fonts=array('1','2');
foreach ($fonts as $num => $font) {
$selected = '';
if ($_POST['number'] == $font) {
$selected = 'selected';
return $font;
}
echo "<option value=\"" . $font . "\" " . $selected . ">" . $font . "</option>"."\r\n";
}
echo '</select>'."\r\n";;
echo '<input type="submit" name="ok" value="OK" >';
}
echo fonts_choose();
?>

да это функция создает поле со списком в котором выбирается шрифт, вот надо, чтоб результат выбранный сохранилс яв переменную, а почему-то не сохраняется

Спустя 15 минут, 14 секунд (3.04.2012 - 13:32) Игорь_Vasinsky написал(а):
я не понял к чему такие извращения - но тут 2мя путями можно (хотя я бы ни один из них не юзал - т.к. всё это ахинея)

1. Беферизация
<?php

function
fonts_choose(){

ob_start();
echo '<select name="number" size="1">'."\r\n";

$fonts=array('1','2');

foreach ($fonts as $num => $font)
{
$selected_font = '';

if ($_POST['number'] == $font)
{
$selected_font = 'selected';

return $font;
}

echo "<option value=\"" . $font . "\" " . $selected_font . ">" . $font . "</option>"."\r\n";
}

echo '</select>'."\r\n";;
echo '<input type="submit" name="ok" value="OK" >';

$content = ob_get_contents();

ob_end_clean();

return $content;

}

echo fonts_choose();


2. Склейка строки (глушу $_POST - по сути нужно isset() или тернарный оператор)
<?php

function
fonts_choose(){

$content = '<select name="number" size="1">'."\r\n";

$fonts=array('1','2');

foreach ($fonts as $num => $font)
{
$selected_font = '';

if (@$_POST['number'] == $font)
{
$selected_font = 'selected';

return $font;
}

$content .= "<option value=\"" . $font . "\" " . $selected_font . ">" . $font . "</option>"."\r\n";
}

$content .= '</select>'."\r\n";;
$content .= '<input type="submit" name="ok" value="OK" >';

return $content;

}

echo fonts_choose();

?>


но это всё глупая реализация.

Спустя 20 минут, 24 секунды (3.04.2012 - 13:53) nikki4 написал(а):
Как же тогда на Ваш взгляд это можно сделать правильно?

(кстати оба варианта выше тоже не работают.. при нажатию на кнопку не выводится полученный результат)

ураа получилось ))
методом тыка, что-то сделал..
в итоге заработало:
<?php
function
fonts_choose(){

echo '<form method="post"><select name="number" size="1">'."\r\n";
$fonts=array('1','2');
foreach ($fonts as $num => $font) {
$selected = '';
if ($_POST['number'] == $font) {
$selected = 'selected';
}
echo "<option value=\"" . $font . "\" " . $selected . ">" . $font . "</option>"."\r\n";
}
echo '</select>'."\r\n";;
echo '<input type="submit" name="ok" value="OK" ></form>';
}
echo fonts_choose();
If ($_POST['number']){
ECHO $_POST['number'];
}

?>

Спустя 1 час, 12 минут, 20 секунд (3.04.2012 - 15:05) killer8080 написал(а):
Цитата (nikki4 @ 3.04.2012 - 13:53)
echo fonts_choose();

зачем делать echo, когда функция и так сама выводит контент? blink.gif

Спустя 5 минут, 48 секунд (3.04.2012 - 15:11) Игорь_Vasinsky написал(а):
ну вот так вот он.. у кого-то же подпись была - работает - нетрогай.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.