2009-10-14 4 views
2

UGH.게시물을 통해 iframe에 양식 데이터 제출 [파일 업로드]

안녕하세요.

나는 형식이 있습니다. 파일 업로드/명명을 처리 할 페이지가있는 iFrame에이 양식을 제출할 수있는 방법을 알고 싶습니다.

양식에 입력/텍스트를 게시하는 것과 같은 간단한 작업을 시도해도 아무 것도 발생하지 않습니다 (처리기가 $ _POST를 표시하도록 설정 됨). iframe 이름/id 등 설정 시도했다. al. 양식 타겟을 각각의 iframe 이름/id로 설정합니다. 제출을 클릭하면 iframe이 더미처럼 앉아 있습니다. WTF 내가 틀렸어?

Thx. 불을 지르고 통해

<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 :이 곳에는 </form> 태그를 넣어 이유를 모르겠어요

<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> 

..이 어떤 iframe이 후 있어야하지만된다. 심지어 중요합니까? iframe이 양식 안에 있어야하나요?

+0

PHP가 아닌 HTML을 제공 할 수 있습니까? (iframe에는 action 속성이 없습니다. src를 의미 했습니까?) – Greg

+0

그래, src를 의미했습니다. 나는 여기에 타이핑 할 때 그것을 덧붙였다. – stormdrain

+0

당신은 testAddTrans의 버그가 아니 었습니까? – Greg

답변

6

니스, 나는 틀렸어. 문제를 발견했다. 먼저 HTML을 쓰기 위해 html을 사용하십시오. 'testSubmitiFrame.html'에 대한

: 'testSubmitiFrame.php'에 대한

<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> 

: 작품 아래의 코드와

<?php 
var_dump($_POST); 
?> 

귀하의 문제는 HTML 구문입니다. 이 작동합니다. http://www.anyexample.com/programming/php/php_ajax_example__asynchronous_file_upload.xml

이 작업이 그 것이다 PHP 파일을 HTML로인가 : 당신이 그것을 통해보고 싶은 당신이 이미하고있는 다를 수 있습니다 무엇을 볼 수 있도록

+0

enctype +1이지만 iframe이있는 POST를 사용할 수 있으므로 -1 – Greg

+0

지금 당장은 파일에 대해 신경 쓰지 않습니다. 나는 심지어 텍스트 필드에 게시물 데이터를 반향하게 할 수 없다. – stormdrain

0

논리가 유효하게 표시됩니다. 테스트 페이지를 설정할 수 있습니까?

+0

아니요, 지역입니다. – stormdrain

0

이 페이지는 당신이 원하는 것을 할 것입니다 처리하니?

+0

나는 그것을 보았다. 문제는 프로토 타입을 사용하고 있으며 이미 작성한 코드 30 마일과 충돌합니다. 그리고 jQuery.noconflict()는 toMe.noHelp()입니다. – stormdrain

+0

자바 스크립트 부분은 큰 문제가 아니어야합니다. 버튼을 클릭 할 때 제출을 수행하고 유효성 검사를 무시하면됩니다. javascript 부분을 작게 만들 수 있으며 프로토 타입을 사용하도록 수정할 수 있습니다. –

1

분명히 div 또는 stupid fieldset 태그가 작동하지 않는 것이 문제였습니다. 좋은 사람들을 괴롭히기 전에 코드를 확인해야합니다.

아무튼 고마워요.

0

나는 그 때문에이 두 줄의 생각 : 당신은 더 개방 태그 <div>을 폐쇄하고

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

. 이렇게하면 파이어 폭스가 일찍 <form>에 가까워지고 있습니다. 제출 버튼이 양식 내부에 없으므로 작동하지 않습니다.

양식 내부 또는 외부의 iframe 위치는 중요하지 않습니다. 나머지 HTML이 유효하고 작동하는지 확인하십시오.