Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 05.05.2016, 13:48   #1
pro_frog
 
Регистрация: 05.05.2016
Сообщений: 8
По умолчанию пропадает переменная из post

В общем ситуация такая, что после нажатия кнопки сабмит у меня аннигилируется переменная $_POST['create_theme']. С чем это может быть связано?
Основной код:
PHP код:
if (isset($_POST['create_theme'])) 
    {
        
create_forum_theme();
        
var_dump($_POST['edit_theme']);
        if(isset(
$_POST['edit_theme']))
        {
            
update_theme($_POST['txt'], $id);
            
var_dump($_POST['edit_theme']);
            
header("Location:".$_SERVER['PHP_SELF']);
            exit;
            
        }
    }
    
var_dump($_POST['create_theme']); 
функция create_forum_theme:
PHP код:
function create_forum_theme()
{
    
$name=$_SESSION['name'];
    
$query=mysql_query("insert into forum_themes (username, description, name) values ('$name',0,0)");
    
$query=mysql_query("select max(id) from forum_themes");
    
$res=mysql_fetch_row($query);
    
$id=$res[0];
    
edit_forum_themes($id);

функция edit_forum_themes:
PHP код:
$txt = selectTxt_theme($id); 
    var_dump($txt);
    ?>
        <form method="post">
            <input type="text" name="name" placeholder="введите тему"><?php echo $txt[0]['name'?></input>
            <textarea id="editor1" placeholder="введите описание темы" name="txt" cols="100" rows="20"><?php echo $txt[0]['description'?></textarea>
            <script type="text/javascript">
                var ckeditor1 = CKEDITOR.replace('editor1');
                AjexFileManager.init({
                    returnTo: 'ckeditor',
                    editor: ckeditor1});
            </script>
            <br/>
            <input type="submit" name="edit_theme" value="Обновить" />
        </form>    
    <?
}
функции selectTxt_theme и update_theme 100% рабочие(не только там используются), в них просто берётся и записывается соответственно информация в бд
P.S. если подскажете как "покрасивее" написать функцию create_forum_theme буду признателен)))
pro_frog вне форума Ответить с цитированием
Старый 05.05.2016, 13:57   #2
Andkorol
Старожил
 
Регистрация: 31.05.2010
Сообщений: 3,301
По умолчанию

Цитата:
Сообщение от pro_frog Посмотреть сообщение
В общем ситуация такая, что после нажатия кнопки сабмит у меня аннигилируется переменная $_POST['create_theme']. С чем это может быть связано?
С тем, что в указанной форме нет поля с атрибутом name="create_theme".
Andkorol вне форума Ответить с цитированием
Старый 05.05.2016, 14:17   #3
pro_frog
 
Регистрация: 05.05.2016
Сообщений: 8
По умолчанию

Цитата:
С тем, что в указанной форме нет поля с атрибутом name="create_theme".
Код HTML:
	<form method="post">
	<input type="submit" name="create_theme" value="создать новую тему">
	</form>
я её просто не показал, она выше находится
pro_frog вне форума Ответить с цитированием
Старый 05.05.2016, 14:22   #4
Andkorol
Старожил
 
Регистрация: 31.05.2010
Сообщений: 3,301
По умолчанию

Кроме этой кнопки в форме ничего нет, никаких других полей.
Какой в этом смысл?
Что ещё ты «просто не показал»?
Andkorol вне форума Ответить с цитированием
Старый 05.05.2016, 14:32   #5
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

pro_frog, может уже пора показать файл целиком?
Если не хочешь всё показывать, то сделай минимально рабочий файл и покажи его.

Кстати, если у тебя несколько разных форм в HTML, то, разумеется, когда сабмитится одна форма, то в ней будут только её собственные переменные (переменные этой формы).
Serge_Bliznykov вне форума Ответить с цитированием
Старый 05.05.2016, 16:26   #6
pro_frog
 
Регистрация: 05.05.2016
Сообщений: 8
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
pro_frog, может уже пора показать файл целиком?
Если не хочешь всё показывать, то сделай минимально рабочий файл и покажи его.

Кстати, если у тебя несколько разных форм в HTML, то, разумеется, когда сабмитится одна форма, то в ней будут только её собственные переменные (переменные этой формы).
это всё дело по разным файлам раскидано, вот я и подумал, что не показывать же их все, а то код до пола выпадет))

то есть, когда сабмитится форма №2, данные формы №1 стираются?
pro_frog вне форума Ответить с цитированием
Старый 05.05.2016, 17:15   #7
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
то есть, когда сабмитится форма №2, данные формы №1 стираются?
когда сабмитится форма 2, то в массиве $_POST находятся только данные формы 2 и никаких других нет (ни формы 1, ни формы 3, ни даже формы 99)!

меняйте логику работы.
если форма 2 зависит от результатов формы 1, то нужно или объединять все поля в рамках одной формы (можно, например, сделать несколько кнопок submit),
либо можно сохранять поля формы 1 после сабмита (например, в input type="hidden")...
и думаю, что есть куча вариантов решения проблемы.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 05.05.2016, 17:49   #8
pro_frog
 
Регистрация: 05.05.2016
Сообщений: 8
По умолчанию

вот оно как. спасибо большое за совет, буду переделывать
pro_frog вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Пропадает меню в ИЕ. AndrejG HTML и CSS 0 09.07.2011 18:13
пропадает ЗВУК!!! sher_man Компьютерное железо 7 12.01.2011 14:53