2013-02-15 2 views
0

이미지를 업로드하고 페이지에서 상쾌하게 표시하지 않고 미리보기로 표시하는 iframe + PHP를 사용하는 이미지 업로드가 있습니다.iframe을 통해 js 변수를 보내시겠습니까?

iframe 및 PHP 스크립트에 변수 (항상 정수, 자동 증분 mysql ID)를 전송하여 수정/다시 업로드 등이 동일한 테이블 행에 영향을 주길 원합니다. 이전과.

그렇게 명확히 :

  1. 을 나는 파일 입력의 '변화'에 JS 변수
  2. 에 저장된 정수를 가지고, 내가 어떻게 든 PHP 스크립트로 iframe을 통해이 변수를 보낼 필요, PHP 스크립트는 그것을 해석하고 사용할 수 있습니다.

편집 :

을 heres 내 코드의 일부 버전을 박탈가 설명하는 데 도움합니다. 파일 입력으로 첫째, 실제 페이지 : 양식이 제출 될 때

<form id="file_upload_form" method="post" enctype="multipart/form-data" action="last-id-test.php" target="upload_target"> 
<input name="file" id="file" size="27" type="file" /><br /> 
<input type="submit" name="action" value="Upload" /><br /> 
<iframe id="upload_target" name="upload_target" src="" style="width:100px;height:100px;border:1px solid #c9cfdd;"></iframe> 
</form> 

때문에, 그것을 데이터베이스에 삽입/실제 업로드 할 마지막 ID-test.php 스크립트를 사용하지만 통해 그것을 수행의 페이지를 다시로드하지 않으려면 'iframe target', 'upload_target'

- 일부 PHP는 물건이 발생,하지만 난 업로드의)합니다 (mysqli_insert_id을 얻고 그것이 'insertID'변수에 저장되어있는 페이지로 다시 보내 : 여기

function uploadDone() { //Function will be called when iframe is loaded 
var returnedValues = frames['upload_target'].document.getElementsByTagName("body") [0].innerHTML.split('@'); 
insertID = returnedValues[0]; 
imgName = returnedValues[1]; 
makeImage =$('<img>').attr('src','images/listing-images/'+imgName); 

makeImage.appendTo($('#image-preview')); 
} 

나는 또한 추가 이미지의 미리보기.

그래서 파일 입력의 '변경'에 PHP 스크립트에 insertID 변수를 보내려면 어떻게해야합니까?

+0

도움이 될 수 있습니다! –

+0

세션에 변수를 저장하고 AJAX를 통해 변수를 설정/검색 할 수 있습니까? – Andrew

답변

0

것은 그런 당신이 난 숨겨진 입력 이것을 달성 $_GET['image_id']

0

이러한 쿼리 변수를 읽을 수 PHP에서 /viewImage.php?image_id=123

, 동적으로 생성 및 반환에 값 속성을 설정하는 등, 질의 변수로 보내기 insertID 변수 :

function uploadDone() { //Function will be called when iframe is loaded 
var returnedValues = frames['upload_target'].document.getElementsByTagName("body")[0].innerHTML.split('@'); 
var insertID = returnedValues[0]; 
var imgName = returnedValues[1]; 
var makeImage =$('<img>').attr('src','images/listing-images/'+imgName); 

makeImage.appendTo($('#image-preview')); 

var makeInput = $('<input>').attr('type','hidden').attr('id','insertID').attr('value',insertID).attr('name','insertID'); 

makeInput.appendTo($('#file_upload_form')); 
} 
+0

이 기능을 동일한 페이지에서 여러 번 실행하려는 경우 이전 버전을 제거하지 않고 매번 새로운 숨겨진 입력을 추가하게됩니다. 그들은 모두 동일한 ID를 가지기 때문에 효과는 정의되지 않습니다. 1) HTML (PHP)에서 숨겨진 입력을 생성하고 uploadDone fn에 값을 설정하거나 2) uploadDone 함수를 작성하기 전에 존재하지 않는지 확인해야합니다. (그렇다면 값을 업데이트하십시오.) –

관련 문제