Autor | Zpráva | ||
---|---|---|---|
davef6 Profil |
#1 · Zasláno: 4. 3. 2009, 22:09:26 · Upravil/a: davef6
proč se mi nepředají data z formuláře do nového okna?
<form name="form" onsubmit="window.open('nahraj_foto.php?<?php if ($_GET[hl_foto]=='1') echo "hl_foto=1"; else echo "hl_foto=0"; ?>', '_blank','status=no,toolbar=no,location=no,menu=no,scrollbars=no,width=392,height=340');" action="#" method="post" ENCTYPE="multipart/form-data"> <table summary="Přidat foto"> <?php if ($_GET[hl_foto]==0 || $priznak == 1) { ?> <tr> <td class="first_fotogal">Foto:</td> <td><input name="myfile" type="file" /></td> </tr> <?php } else { ?> <tr> <td class="first_fotogal" style="color:#FF0000;">Hlavní foto:</td> <td><input name="myfile" type="file" /></td> </tr> <?php } ?> <tr> <td class="first_fotogal">Komentář:</td> <td><textarea id="textfield" onKeyPress="over();" class="clasic_ta_2" name="text"></textarea></td> </tr> <tr> <td class="first_fotogal"></td> <td colspan="2">Zbývá znaků: <input type="text" name="cislo" size="2" value=" 150" readonly=""> <script language="javascript"> function over(){ c=document.form.text.value.length; f=document.form.text.value; if(c<=149){ document.form.cislo.value=150-(c+1); document.form.cislo2.value=c+1; } if(c==150){ window.alert("Maximální délka je 150 znaků!"); } if(c>150){ document.form.text.value=f.substring(0,149); } } </script> </td> </tr> </table> <input type="submit" name="submitBtn" id="odeslat_but_fotogal" value=" " /> </form> |
||
habendorf Profil |
#2 · Zasláno: 4. 3. 2009, 22:47:14
A action máš kde?
|
||
davef6 Profil |
#3 · Zasláno: 4. 3. 2009, 22:55:38
action jsem doplnil, jen by mě zajimalo kde může být chyba:)
|
||
Chamurappi Profil |
#4 · Zasláno: 4. 3. 2009, 23:09:56
Reaguji na habendorfa:
Atribut action je zbytečný, pokud se odesílá na adresu, která je právě nalistovaná. (Což v tomto případě nevíme, jestli je stejná. Asi není.) Reaguji na davaf6: Událost onsubmit se vykonává před odesláním. Takže uživatel klikne na odesílací tlačítko, ty mu otevřeš jakési okno s jakousi adresou a formulář se normálně odpostuje ve svém okně na svoji cílovou adresu. Máš docela neobvyklé zadání. Potřebuješ otevřít nové okno a zároveň nezasahovat do přirozeného odesílacího procesu. Takže: 1) Do atributu action vyplň adresu cílového PHP skriptu (tedy „nahraj_foto.php?…“). 2) Při onsubmit otevři nové okno metodou window.open, nějak ho pojmenuj (jméno okna určuje druhý parametr) a nalistuj do něj adresu „about:blank“ (tedy prázdnou stránku, nikoliv nahraj_foto.php). 3) Formuláři dej target="jméno-toho-okna". |
||
davef6 Profil |
#5 · Zasláno: 5. 3. 2009, 00:47:51
ještě budu trošku otravovat, jak mohu třeba po dokončení skriptu a tom novém okně aktualizovat to staré? díky:)
|
||
davef6 Profil |
#6 · Zasláno: 5. 3. 2009, 09:52:05
řešil jsem to nakonec takto
<script>window.opener.reload();</script> |
||
davef6 Profil |
#7 · Zasláno: 5. 3. 2009, 10:07:30
tak už nic, chyba na mé straně:)
|
||
Časová prodleva: 15 let
|
0