Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Общие вопросы > Как передать данные из одной формы в другую


Автор: Katshooter 14.7.2007, 15:39
Помогите, плиз!!!
На одной страничке есть две формы - к одной из другого скрипта приходят пути к картинкам, а из другой формы они должны передаваться в третий скрипт в котором и выводится картинка
Код

<form name='Image' action='FRame.php' method='POST' enctype='multipart/form-data' target="miniframe">
    <input type='hidden' name='MAX_FILE_SIZE' value='1000000' />
    Имя файла:<input type='file' name='Filename' /><br />
    <input type='submit' name="LoadFile" value='Loaded'/>
    <input type='hidden' name='large' value='' id="lN" />
    <div id="sN">
    <img src='no_photo.gif'/>
    </div>
    <br />
</form>
<form name='FIO' action='Ank.php' method='POST' enctype='multipart/form-data' >
    ФИО:<input type='text' name='Name' value='Unknown' />
    <br/>
    e-mail:<input type='text' name='e-mail' value='Unknown' />
    <br/>
    ICQ:<input type='text' name='ICQ' value='Unknown' />
    <br/>
    <input type='hidden' name='sm' value=''>
    
    <input type='submit' name="Button" value='ОК'/>    
</form>



в 'large' находиться путь к картинке он приходит по кнопке 'submit'  скрипт:


Код

<html>
<head>
<script type="text/javascript">
function ErrorFormat()
{
    alert('Загружаемый файл не является изображением!');
}
function LoadOK(smallNm,lgName)
{
    parent.document.getElementById("sN").innerHTML = '<img src="' + smallNm + '" />';
//    parent.document.getElementById("lN").innerHTML = '<img src="' + lgName + '" />';
parent.document.getElementById("lN").innerHTML = lgName />';
}
</script>
</head>
<?php
$smallName = './Small/';
$largeName='./Large/';
function ReceiveImage()
{
    global    $smallName,$largeName;
    if(substr($_FILES['Filename']['type'],0,5)=='image')
    {
        move_uploaded_file($_FILES['Filename']['tmp_name'],getcwd().'/'.basename($_FILES['Filename']['name']));
        $fname=$_FILES['Filename']['name'];
        $mas=getimagesize($fname);
        if($mas[2]==1)
            $rez=imagecreatefromgif($fname);
        else
        if($mas[2]==2)
            $rez=imagecreatefromjpeg($fname);
        else
        if($mas[2]==3)
            $rez=imagecreatefrompng($fname);
        else return false;
        if($mas[0]>$mas[1])
        {
            $new_rez=imagecreatetruecolor(120, 120 * $mas[1] / $mas[0]);
        }
        else
        {
            $new_rez=imagecreatetruecolor(120 * $mas[0] / $mas[1], 120);
        }
        $largeName=$largeName.$_FILES['Filename']['name'];
            if($mas[2]==1)    imagegif($rez, $largeName);
            else
            if($mas[2]==2)    imagejpeg($rez, $largeName);
            else
            if($mas[2]==3)    imagepng($rez, $largeName);
        imagecopyresized($new_rez, $rez,0,0,0,0, imagesx($new_rez), imagesy($new_rez) ,$mas[0], $mas[1]);
        $smallName = $smallName.$_FILES['Filename']['name'];
            if($mas[2]==1)    imagegif($new_rez, $smallName);
            else
            if($mas[2]==2)    imagejpeg($new_rez, $smallName);
            else
            if($mas[2]==3)    imagepng($new_rez, $smallName);
            return true;
    }
    else return false;
}
?>
<?php
if (ReceiveImage())
{
?>
<body onload="LoadOK('<?php echo $smallName?>','<?php echo $largeName; ?>')">
<?php
}
else
{
    ?><body onload="ErrorFormat()"><?php
}
?>
</body>
</html>


а в третий скрипт из втрой формы приходят данные, вот к ним мне и нужно добавить данные из hidden ....
Хоть какие-нибудь варианты подскажите smile .... я в отчаянии

Автор: FlameTH 14.7.2007, 16:37
метод POST к вашим услугам

Автор: Katshooter 14.7.2007, 17:50
Цитата(FlameTH @ 14.7.2007,  16:37)
метод POST к вашим услугам

СПАСИБО, только вот в чем загвоздка с постом передаються только те данные, которые находяться во второй форме, а мне нада туда еще добавить данные из ПЕРВОЙ формы!!!

Автор: sabian 14.7.2007, 18:49
Цитата(Katshooter @  14.7.2007,  15:39 Найти цитируемый пост)
Хоть какие-нибудь варианты подскажите  .... я в отчаянии 


Ну а почему бы не объединить две этих формы? Почему именно должно быть две?
И потом, у вас в одной форме написано "action='Ank.php'", а в другой "action='FRame.php'", т.е. получается, что данные из форм обрабатывают разные файлы...

Автор: Katshooter 14.7.2007, 19:08
Цитата(sabian @ 14.7.2007,  18:49)
Цитата(Katshooter @  14.7.2007,  15:39 Найти цитируемый пост)
Хоть какие-нибудь варианты подскажите  .... я в отчаянии 


Ну а почему бы не объединить две этих формы? Почему именно должно быть две?
И потом, у вас в одной форме написано "action='Ank.php'", а в другой "action='FRame.php'", т.е. получается, что данные из форм обрабатывают разные файлы...

Именно!!! Разные формы - обрабатывают разные файла, а две формы нужны для того, чтоб при загрузке в первой форме картинки. не обновлялась страничка

Автор: FlameTH 16.7.2007, 08:27
Ну тогда, если эти две формы на одной странице, то легче это сделать яваскриптом.

Автор: BuShaRt 16.7.2007, 08:36
Опаздываю на работу, думать не успеваю, смотреть код не стал. Но вы точно уверены, что вы выбрали оптимальное исполнение задачи? Сдаеться мне, что все делаеться проще, чемы вы напридумывали ;)

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)