0

iframe + phpを使用して画像をアップロードし、更新せずにページに表示する画像アップロードがあります(プレビューのようなものです)。

編集/再アップロードなどが以前と同じテーブル行に影響するように、変数 (常に整数、自動インクリメント mysql ID) を iframe および php スクリプトに送信できるようにしたいと考えています。

明確にするために:

  1. js変数に整数が格納されています
  2. ファイル入力の「変更」時に、この変数をiframe経由でphpスクリプトに送信する必要があります.phpスクリプトはそれを解釈して使用できます。

編集:

説明を助けるために、私のコードの一部を取り除いたバージョンをここに示します。まず、ファイル入力のある実際のページ:

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

そのため、フォームが送信されると、last-id-test.php スクリプトを使用してデータベースへの実際のアップロード/挿入を行いますが、ページの再読み込みを避けるために、ターゲット iframe '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'));
}

ここで、画像のプレビューも追加します。

では、ファイル入力の「変更」時にinsertID変数をphpスクリプトに送信するにはどうすればよいですか?

4

3 に答える 3

0

フォームの送信にajaxを使用していますか?その場合は、onclick関数を使用して変数を渡すことができます。

これは役立つ場合があります http://net.tutsplus.com/tutorials/javascript-ajax/submit-a-form-without-page-refresh-using-jquery/

于 2013-02-16T00:36:25.517 に答える
0

動的に生成され、その値属性を返された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'));
}
于 2013-02-15T23:39:45.660 に答える