关于php:通过发布[文件上传]将表单数据提交到iframe中

submit form data into iframe via post

啊。

你好

我有一个表格。 我想知道如何/是否可以将此表单提交到具有处理文件上载/命名页面的iFrame。

如果我尝试简单的操作,例如将输入/文本发布到表单,则什么也不会发生(处理程序设置为回显$ _POST)。 我尝试设置iframe名称/ id等。 等 并将表单目标设置为相应的iframe名称/ id。 当我点击提交时,iframe就像一个假人一样坐在那里。 WTF我做错了吗?

谢谢。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
<form action="/clients/testAddTrans/<?=$clientID?>" id="reportEdit" class="EditName" method="POST" target="transFrame">
   
        <span class="inputLabel">Description:</span>
        <span class="textInput">
            <input type="text" id="transDesc" name="transDesc" value="" size="40" class=""/>
        </span>
   
   
        <span class="inputLabel">Date:</span>
        <span class="textInput">
            <input type="text" id="date" name="transDate" value="" size="40" class=""/>
        </span>
   
   
        <span class="inputLabel">File:</span>
        <span class="textInput">
            <input type="file" id="file" name="transFile" value="" size="40" class=""/>
        </span>
   
    <input name="name_id" type="hidden" value="<?=$itemid?>" />
    <input type="submit" value="Submit" name="submit"/>
    <input type="button" class="secondaryAction" onclick="hideOverDiv()" value="Close"/>
   
    <iframe action="/clients/testAddTrans/<?=$clid?>" id="transFrame" name="transFrame" style=""></iframe>
</form>

通过萤火虫生成的html:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
  <fieldset class="inputOverDiv" id="tfa_Names">
 <legend>Add Transmittal:</legend>
  <form target="transFrame" method="POST" class="EditName" id="reportEdit" action="/clients/testAddTrans/fsdf1556"><span class="inputLabel">Description:</span><span class="textInput"><input type="text" class="" size="40" value="" name="transDesc" id="transDesc"/></span><span class="inputLabel">Date:</span><span class="textInput"><input type="text" class="" size="40" value="" name="transDate" id="date"/></span><span class="inputLabel">File:</span><span class="textInput"><input type="file" class="" size="40" value="" name="transFile" id="file"/></span><input type="hidden" value="121" name="name_id"/>
  </form><br/>
 
   <input type="submit" name="submit" value="Submit"/>
   <input type="button" value="Close" onclick="hideOverDiv()" class="secondaryAction"/>
 
 
 


  <iframe style="" name="transFrame" id="transFrame">tyh</iframe>
  </fieldset>

我不知道为什么将

标记放在其中。它应该在iframe之后,但无论如何。 这有关系吗? iframe是否应该位于表单内?


很好,我错了..我发现了问题。
首先使用html编写html;
使用下面的代码可以工作:

对于" testSubmitiFrame.html":

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
    <form target="transFrame" method="POST" class="EditName" id="reportEdit" action="testSubmitiFrame.php">

   
        <fieldset class="inputOverDiv" id="tfa_Names">
        <legend>Add Transmittal:</legend>
       
           
                <span class="inputLabel">Description:</span>
                <span class="textInput"><input type="text" class="" size="40" value="" name="transDesc" id="transDesc"/></span>
           
           
                <span class="inputLabel">Date:</span>
                <span class="textInput"><input type="text" class="" size="40" value="" name="transDate" id="date"/></span>
           
           
                <span class="inputLabel">File:</span>
                <span class="textInput"><input type="file" class="" size="40" value="" name="transFile" id="file"/></span>
           
            <input type="hidden" value="121" name="name_id"/>
            <br/>
           
                <input type="submit" name="submit" value="Submit"/>
                <input type="button" value="Close" onclick="hideOverDiv()" class="secondaryAction"/>
           
           
       
        </fieldset>
   

</form>
<iframe style="" name="transFrame" id="transFrame">tyh</iframe>

对于'testSubmitiFrame.php':

1
2
3
<?php
var_dump($_POST);
?>

您的问题是html语法。这可行。


显然,div或愚蠢的fieldset标签不合适,导致该事物无法正常工作。我真的必须先检查我的代码,然后再打扰您好人。

不管怎么说,还是要谢谢你。


我认为是因为这两行:

1
2
echo"";
echo"

您正在关闭,没有任何开始标签。这使Firefox可以尽早关闭

-您的提交按钮不在表单中,这就是为什么它无法正常工作的原因。

iframe在表单内部还是外部的位置都没有关系-只需确保HTML的其余部分有效并且可以正常工作即可。


此页面将执行您想要的操作,因此您可能需要浏览一下该页面,并查看可能与您正在做的事情有所不同的地方:
http://www.anyexample.com/programming/php/php_ajax_example__asynchronous_file_upload.xml

html中的操作是将进行处理的php文件吗?


您的逻辑看起来有效,可以设置测试页吗?