0

ユーザーがファイルを選択した後に「アップロード」ボタンを押す必要がないように、ファイルをアップロードしています。それは正常に動作しますが、追加のパラメーターも送信する必要があり、Javascript にまったく興味がないため、送信方法がわかりません。
html:

<form enctype="multipart/form-data" target="_blank" name="send_img" id="send_img" method="post" action="img_upload.php">
    <input type="hidden" id="group_id" name="group_id" value="2" />
    <input type="file" class="hide" id="uploaded_file" name="uploaded_file" onChange="Handlechange();"/>
    <button type="submit" id="btn">Subir fotos!</button>
</form>

<div onclick="HandleBrowseClick();" id="fakeBrowse" >Load a picture</div>

スクリプト:

<script language="JavaScript" type="text/javascript">
function HandleBrowseClick()
{
    var fileinput = document.getElementById("uploaded_file");
    fileinput.click();
}

function Handlechange()
{
    var fileinput = document.getElementById("uploaded_file");
    var textinput = document.getElementById("filename");
    textinput.value = fileinput.value;
}
</script>

group_id 変数を送信する方法がわかりません (php 変数にあるため、スクリプト内であってもどこにでもエコーできます)。私は運が悪いので、多くの方法を試しました。では、その変数を img_upload.php でどのように渡して取得することができるのでしょうか? 私はそれを考えました:

var group_id = document.getElementById("group_id").value;

それを作るだろうが、私は間違っていた:-/

私が興味深いと思うのは、フォームタグを に変更するとaction="img_upload.php?group_id=2"、後でそのファイルのパラメーターを取得できないことです。$_GET['group_id'];

img_upload.php では、この別の変数を取得してデータベースに挿入しています。したがって、その変数を php 変数に入れることができるような方法でその変数を取得できれば、本当にクールです (この最後の行でできるだけ明確にしようとしました)。
また、Chrome Developer Tool で取得したものを追加します。

Request Payload
------WebKitFormBoundarydOdbB5IQ8RbA8CRR
Content-Disposition: form-data; name="uploaded_file[]"; filename="photo-5.JPG"
Content-Type: image/jpeg


------WebKitFormBoundarydOdbB5IQ8RbA8CRR--

それが、問題はデータ送信スクリプトにあると私に思わせるものです

4

1 に答える 1

1

「送信」をクリックすると、すべての入力フィールドが HTTP POST を使用してサーバーに送信されます。

サーバーでは、(Java)のようなものでリクエストを解釈できます

request.getAttribute('uploaded_file');

PHP では、これは次のようになります。

$myFile = $_REQUEST['uploaded_file'];

PHP マニュアルを参照してください。

編集: 入力タグが無効です (「/」を削除してください):

<input type="hidden" id="group_id" name="group_id" value="2">

編集2:

以下を追加します (テストとして)。

<script type="text/javascript">
var el = document.getElementById('send_img');

el.addEventListener('submit', function(){
alert(document.getElementById("group_id").value);
return true;
}, false);
</script>
于 2012-12-23T21:06:49.380 に答える