簡體   English   中英

通過發布[文件上傳]將表單數據提交到iframe

[英]submit form data into iframe via post [file upload]

啊。

你好。

我有一個表格。 我想知道如何/是否可以將此表單提交到具有處理文件上載/命名頁面的iFrame。

如果我嘗試甚至將輸入/文本發布到表單之類的簡單操作,也不會發生任何事情(處理程序設置為回顯$ _POST)。 我嘗試設置iframe名稱/ id等。 人。 並將表單目標設置為相應的iframe名稱/ id。 當我點擊提交時,iframe就像一個假人一樣坐在那里。 WTF我做錯了嗎?

謝謝。

<form action="/clients/testAddTrans/<?=$clientID?>" id="reportEdit" class="EditName" method="POST" target="transFrame">
    <div class="inputDiv">
        <span class="inputLabel">Description:</span>
        <span class="textInput">
            <input type="text" id="transDesc" name="transDesc" value="" size="40" class=""/>
        </span>
    </div>
    <div class="inputDiv">
        <span class="inputLabel">Date:</span>
        <span class="textInput">
            <input type="text" id="date" name="transDate" value="" size="40" class=""/>
        </span>
    </div>
    <div class="inputDiv">
        <span class="inputLabel">File:</span>
        <span class="textInput">
            <input type="file" id="file" name="transFile" value="" size="40" class=""/>
        </span>
    </div>
    <input name="name_id" type="hidden" value="<?=$itemid?>" />
    <input type="submit" value="Submit" name="submit"/>
    <input type="button" class="secondaryAction" onclick="hideOverDiv()" value="Close"/>
    <div id="overDivNotice" class="overDivNotice" style="display:none"></div>
    <iframe action="/clients/testAddTrans/<?=$clid?>" id="transFrame" name="transFrame" style=""></iframe>
</form>

通過螢火蟲生成的html:

    <div class="content" id="overDivContent"><div class="inputDivContainer">
  <fieldset class="inputOverDiv" id="tfa_Names">
 <legend><b>Add Transmittal:</b></legend>
  <div class="data"><form target="transFrame" method="POST" class="EditName" id="reportEdit" action="/clients/testAddTrans/fsdf1556"><div class="inputDiv"><span class="inputLabel">Description:</span><span class="textInput"><input type="text" class="" size="40" value="" name="transDesc" id="transDesc"/></span></div><div class="inputDiv"><span class="inputLabel">Date:</span><span class="textInput"><input type="text" class="" size="40" value="" name="transDate" id="date"/></span></div><div class="inputDiv"><span class="inputLabel">File:</span><span class="textInput"><input type="file" class="" size="40" value="" name="transFile" id="file"/></span></div><input type="hidden" value="121" name="name_id"/>
  </form><br/>
  <div align="center" class="actions" id="overDivActions">
   <input type="submit" name="submit" value="Submit"/>
   <input type="button" value="Close" onclick="hideOverDiv()" class="secondaryAction"/>
  </div>
  <div style="display: none;" class="overDivNotice" id="overDivNotice">
  </div></div>


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

我不知道為什么將</form>標記放在其中。它應該在iframe之后,但無論如何。 這有關系嗎? iframe是否應該位於表單內?

很好,我錯了..我發現了問題。 首先使用html編寫html; 使用下面的代碼即可:

對於“ testSubmitiFrame.html”:

    <form target="transFrame" method="POST" class="EditName" id="reportEdit" action="testSubmitiFrame.php">
<div class="content" id="overDivContent">
    <div class="inputDivContainer">
        <fieldset class="inputOverDiv" id="tfa_Names">
        <legend><b>Add Transmittal:</b></legend>
        <div class="data">
            <div class="inputDiv">
                <span class="inputLabel">Description:</span>
                <span class="textInput"><input type="text" class="" size="40" value="" name="transDesc" id="transDesc"/></span>
            </div>
            <div class="inputDiv">
                <span class="inputLabel">Date:</span>
                <span class="textInput"><input type="text" class="" size="40" value="" name="transDate" id="date"/></span>
            </div>
            <div class="inputDiv">
                <span class="inputLabel">File:</span>
                <span class="textInput"><input type="file" class="" size="40" value="" name="transFile" id="file"/></span>
            </div>
            <input type="hidden" value="121" name="name_id"/>
            <br/>
            <div align="center" class="actions" id="overDivActions">
                <input type="submit" name="submit" value="Submit"/>
                <input type="button" value="Close" onclick="hideOverDiv()" class="secondaryAction"/>
            </div>
            <div style="display: none;" class="overDivNotice" id="overDivNotice"></div>
        </div>
        </fieldset>
    </div>
</div>
</form>
<iframe style="" name="transFrame" id="transFrame">tyh</iframe>

對於'testSubmitiFrame.php':

<?php
var_dump($_POST);
?>

您的問題是html語法。 這可行。

顯然,div或愚蠢的fieldset標簽不合適,導致該產品無法正常工作。 我真的必須先檢查我的代碼,然后再打擾您好人。

不管怎么說,還是要謝謝你。

您的邏輯看起來有效,可以設置測試頁嗎?

該頁面將執行您想要的操作,因此您可能需要瀏覽一下該頁面,並查看可能與您正在執行的操作有所不同: http : //www.anyexample.com/programming/php/php_ajax_example__asynchronous_file_upload.xml

html中的操作是將進行處理的php文件嗎?

我認為是因為這兩行:

echo "</div>";
echo "</div><br>

您正在關閉<div>且沒有打開標簽。 這使Firefox盡早關閉<form> -您的提交按鈕不在表單內,這就是為什么它無法正常工作的原因。

iframe在表單內部還是外部的位置都沒有關系-只需確保HTML的其余部分有效並且應該可以工作即可。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM