アプリ版:「スタンプのみでお礼する」機能のリリースについて

formの中で別のactionをもったsubmitボタンの設置。

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=EUC-JP">
<title>sample</title>
<script language="JavaScript" type="text/javascript">
<!--
//<クリックした時に実行される関数>
//*** 送信画面
function func1(form){
document.form1.text.value =form.text.value;
document.form1.file.value =form.file.value;
document.form1.dummy.value =form.dummy.value;
document.form1.submit();
}

//*** ユーザー追加画面
function func2(form){
document.form2.text.value =form.text.value;
document.form2.file.value =form.file.value;
document.form2.dummy.value =form.dummy.value;
document.form2.submit();
}
//-->
</script>
</head>
<body class="index">
<form enctype="multipart/form-data">
<table id="table" width="100%">
<tr><th width="10%">テキスト</th><td><input type="text" name="text">
<br />
<div style="text-align:left;">
<input type="button" onClick="func2(this.form)" value="テキスト確認">
</div>
</td></tr>
<tr><th width="10%">添付</th><td><input type="file" name="file"></td></tr>
</table>
<div style="text-align:left;">
<input type="button" onClick="func1(this.form)" value="確認">
</div>
</form>




<!-- sousin.php画面へ -->
<form method="post" name="form1" action="sousin.php" enctype="multipart/form-data">
<input type="hidden" name="text">
<input type="hidden" name="file">
<input type="hidden" name="dummy">
</form>

<!--- text.php画面へ --->
<form method="post" name="form2" action="text.php" enctype="multipart/form-data">
<input type="hidden" name="text">
<input type="hidden" name="file">
<input type="hidden" name="dummy">
</form>


</body>
</html>


上記のように記述し、フォームの中に別のactionをもったsubmitボタンを設置しました。
textの内容は渡せるのですが、添付したいファイルを渡すことができません。

添付ファイルも渡せるようにするにはどうすればよいのでしょうか

A 回答 (5件)

すみません、補足の訂正です。



No.3さんのはtype="file"ではなくtype="hidden"でしたね。
申し訳ありませんでした。

あと、最近のブラウザでは、ファイル名は送信するけれども、
パスは送信しないような傾向になってきています。
だからパスが送られてくる前提のプログラムも今後は避けたほうがいいでしょう。
これもセキュリティ上の問題です。
    • good
    • 0

補足です。



type="file"のvalueに対して、サーバ側で値を設定することはできません。
JavaScriptでできないのと同じ理由だと思います。

質問のソースを見ると、アップロードの仕方を処理によって分けたいため
フォームも分けているということですよね。
ファイル名やサムネイルを表示できるのはアップロード後のことなので
この段階では無理でしょう。

もし処理をわけたいのでしたら、
ひとつのフォームで送信してサーバ側で振り分けるか、
フォームもサーバ側のプログラムも別にするしかないのではないでしょうか。

今はAjax全盛の時期なのでJavaScriptを避ける理由は特にないと思います。
もちろんサーバ側でやったほうがいい処理まで書く必要は無いと思いますが。
    • good
    • 1

<input type="hidden" name="text">


<input type="hidden" name="file">
ではなく、CGIにいったん渡して、
<input type="hidden" name="text" value="なんたらかんたら">なんたらかんたら
<input type="hidden" name="file" value="file:///C:\temp\abc.jpg">abc.lpg
とかにすべき、
画像はサーバーのimageMagickをつかってサムネイルを表示させるとか・・

javascriptは使うべきではない。色々な面で・・
    • good
    • 0
この回答へのお礼

ありがとうございました。
なかなか複雑なのですね。

お礼日時:2010/06/23 21:00

No.1さんの言うとおりだと思いますので、


こうしたらいかがでしょう。

//*** 送信画面
function func1(form){
form.action="sousin.php"
form.submit();
}

//*** ユーザー追加画面
function func2(form){
form.action="text.php"
form.submit();
}
    • good
    • 0
この回答へのお礼

POST先をかえるんですね。
ありがとうございます。

お礼日時:2010/06/23 20:59

javascriptでファイルの指定をしたいという要望でしょうか?


セキュリティの問題で、まっとうなブラウザではできません。
    • good
    • 0
この回答へのお礼

ありがとうございます。
やはりできないのですね。。。。

お礼日時:2010/06/23 20:58

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!