Два submit`а

Zuko91

Новичок
Два submit`а

Во время обработки кнопки, ответственной за загрузку файлов на сервер, в
переменные заносятся определённые данные. Но проблема в том, что при
обработке второй кнопки типа submit эти переменные не доступны. Хотя в
любой другой части программы они доступны. Что можно сделать? Ни сессии,
ни куки не спасают.

PHP:
...

if (@$_REQUEST['Submit1']) 
 {
 
  /* Отсюда берутся переменные */
 
 }   

if(@$_REQUEST['Submit2'])
 { 
 
/* Вот здесь переменные из submit1 недоступны */ 
 
 } 

/* А вот здесь вполне */ 
...
 

Wicked

Новичок
ну это вполне логично, что при нажатии на второй сабмит, срабатывает второе условие if и не срабатывает первое, поэтому переменным взяться неоткуда... что непонятно-то?
 

Zuko91

Новичок
Второй сабмит актуален только после работы первого. Значит первый сабмит уже как бы сделал своё дело и переменные должны быть, а их нет.
 

Фанат

oncle terrible
Команда форума
сначала объяснить человеческим языком, что тебе нужно.
с примером формы и того, что ы итоге хочешь получить
 

Zuko91

Новичок
Автор оригинала: *****
сначала объяснить человеческим языком, что тебе нужно.
с примером формы и того, что ы итоге хочешь получить
Делаю пробное задание в виде гостевой-каталога с возможностью отправки текста и прикрепления картинки. Для картинки нужен предварительный просмотр там же в форме отправки спец. окошке по нажатию на кнопку "Загрузить изображение". Если юзеру понравился результат, он сохраняет данные, иначе - сбрасывает и заново.

Форма:
PHP:
<html>

<body>

<form method="POST" action="" enctype="multipart/form-data"> 
<table border="1" width="829" height="282">
    <tr>
        <td height="33" width="819" colspan="2">&nbsp;</td>
    </tr>
    <tr>
        <td height="179" width="186"> 
        <p align="center"> 
        <img src="<?=$mininame?>" width="150" height="170" border="2"/></td>
        <td height="179" width="627">&nbsp;</td>
    </tr>
    <tr>
        <td height="60" width="819" colspan="2">&nbsp;</td>  
    </tr>
</table>
  <p>&nbsp;</p>
  <p>&nbsp;</p>
<table border="0" width="827" height="255">
    <tr>
        <td height="211" width="600" rowspan="3">
        <p align="center"><textarea rows="14" name="newtext" cols="73"><?=$newtext;?></textarea></td>
        <td height="178" width="206">          
        <p align="center"> 
        <img src="<?=$image?>" width="150" height="170" border="2"/></td>
    </tr>
    <tr>
        <td height="28" width="206">
        <p align="center">
        <input type="file" name="MyFile" size="20" style="float: right"></td>
    </tr>
    <tr>
        <td height="27" width="206">
        <p align="center">
        <input type="submit" value="Загрузить изображение" name="LoadBtn" style="float: center"></td>
    </tr>
    <tr>
        <td height="36" width="817" colspan="2">
        <p align="center">
        <input type="reset" value="Сброс" name="ResetBtn" style="float: right">
        <input type="submit" value="Поместить данные в каталог" name="SubBtn" style="float: right"></td>
    </tr>
    </form>
</table>

</body>

</html>
 

Фанат

oncle terrible
Команда форума
ну так ты наверное не отправляешь никакие данные после предпросмотра? вот их и нету у тебя в скрипте.
Submit2 у тебя в предпросмотре? А данные какие-то на сервер отправляются этим субмитом?
 

Zuko91

Новичок
Отправляю первым сабмитом только файлы во временную папку на сервак, сжимаю картинку, беру имя файла. Второй сабмит должен брать имя файла из первого сабмита и копировать файл уже в постоянную папку + работа с БД, а временная папка очищается.
 

Zuko91

Новичок
Даже не знаю. Ну if же сделал своё дело, данные должны появиться в переменной. Они появляются, но внутри второго обработчика не доступны.
 

Zuko91

Новичок
Это я уже видел. =) Так как проблему-то решить? Форма с GET & POST?
 

Фанат

oncle terrible
Команда форума
Зачем врать?
Ты ж не в школе. Ты же не мне делаешь этот код. А для себя.
Себе-то зачем врять?
 

Zuko91

Новичок
Автор оригинала: *****
Зачем врать?
Ты ж не в школе. Ты же не мне делаешь этот код. А для себя.
Себе-то зачем врять?
Посмотрите выше пост товарища akd. Он даёт ссылку на ту же самую страницу. Я не могу понять, как применить это на практике для решения моей задачи и в будущем.
 

Single

пилот капсулы
Zuko91
стр 1: форма ввода данных и сабмит на "стр 2" методом post
стр 2 (предпросмотр): форма аналогичная форме со "стр 1" с хиден инпутами заполненными данными из пост массива и сабмит на "стр 3" методом post
стр 3: print_r($_POST)
 

Фанат

oncle terrible
Команда форума
Я не могу понять, как применить
Сначала надо понять, как работает веб-приложение. Чтобы не было вопросов, почему при повторном вызове скрипта переменные почему-то недоступны.

И только потом уже можно сообразить, как их передавать повторно.
 
Сверху