• 締切済み

onclickイベントで、PHPの関数をコール

下記のようなPHPスクリプトで、ボタンが押された時の、onclickイベントで<?php upload_file() ?>として PHPのupload_file() 関数をコールしてるのですが、画像ファイルがアップできません。 どこが間違いなのか、教えていただけますか。 --------------------------------------------------------------------------------- <form name="form2" method="POST" enctype="multipart/form-data" action="bbs.php"> <!-- ファイル参照フォームを表示する --> <input type="hidden" name="MAX_FILE_SIZE" value="30000"> <input type="file" name="upfile" tabindex="6"> <input type="button" value="画像を送信" tabindex="7" onclick="<?php upload_file() ?>"> </form>

  • PHP
  • 回答数2
  • ありがとう数1

みんなの回答

  • notnot
  • ベストアンサー率47% (4846/10257)
回答No.3

No1です。 >では、実際、onclick= のあと、どのようにソースを書けば、 方針を書いてみます。 1.ページ遷移していい場合 location.hrefに呼び出したいPHPのURLを代入する。 2. ページ遷移したくない場合 同一サイト前提になるが、XMLHttpRequestで、呼び出したいPHPのURLを呼び出す。 「勉強しないでプログラムを書く」のは無理だと思いますよ。

  • notnot
  • ベストアンサー率47% (4846/10257)
回答No.1

もうすこし基本的なところから勉強し直した方が良いと思います。PHPの入門書をちゃんと読むとか。 <input type="button" value="画像を送信" tabindex="7" onclick="<?php upload_file() ?>"> </form> を、phpファイルに書くと、ページを表示する時点で、upload_file() 関数を呼び出して、その関数が出力する内容を onclick=" " の中に書き込んだ上でHTMLを表示します。 そのページのHTMLソースを見てみましょう。

beterugius
質問者

お礼

ありがとうございました。

beterugius
質問者

補足

では、実際、onclick= のあと、どのようにソースを書けば、JavaScript(クライアント側)からPHPの関数(サーバー側でPHPを解読して、HTMLを吐く)をコールできるのでしょうか。 (自分でもググったのですが、明確な答えが得られませんでした。)

関連するQ&A

  • ファイル選択と同時にアップロード HTML+JS

    HTMLとJava Scriptのことを質問させてください <form>タグからファイルを選択すると同時をアップロードしたいと思っています。 複数の「ファイルを選択ボタン」を設置し、それぞれ"001.jpg"、"002.jpg"など指定の名前でアップロードしたいです。 下記のようにいくつかの<form>タグを設置し、javascriptでコントロールできるかと思いケース1のように書いた場合はうまくいったのですが、ケース2のように複数並べて記述した場合、動かなくなり困っております。 どなたか教えていただけないでしょうか? よろしくお願いいたします ケース1) <form id="upload_file1" action="file_upload.php" method="post" enctype="multipart/form-data" target="upload_frame">    <input type="hidden" name="picture_id" value="001.jpg" />    <input type="file" id="file_id_1" name="file_name" accept="image/jpeg"> </form> <form id="upload_file2" action="file_upload.php" method="post" enctype="multipart/form-data" target="upload_frame">    <input type="hidden" name="picture_id" value="002.jpg" />    <input type="file" id="file_id_2" name="file_name" accept="image/jpeg"> </form> <script> var form = document.getElementById("upload_file1"); var input = form.file_name; input.onchange = function (){ if(this.value){ form.submit(); } }; </script> ケース2) <form id="upload_file1" action="file_upload.php" method="post" enctype="multipart/form-data" target="upload_frame">    <input type="hidden" name="picture_id" value="001.jpg" />    <input type="file" id="file_id_1" name="file_name" accept="image/jpeg"> </form> <form id="upload_file2" action="file_upload.php" method="post" enctype="multipart/form-data" target="upload_frame">    <input type="hidden" name="picture_id" value="002.jpg" />    <input type="file" id="file_id_2" name="file_name" accept="image/jpeg"> </form> <script> var form = document.getElementById("upload_file1"); var input = form.file_name; input.onchange = function (){ if(this.value){ form.submit(); } }; var form = document.getElementById("upload_file2"); var input = form.file_name; input.onchange = function (){ if(this.value){ form.submit(); } }; </script>

  • PHPでフォームから任意の画像削除方法

    複数画像がアップロード出来るフォームがあります。 そのフォームはユーザがアップした画像は、フォームにアクセスする度に表示されます。 <form action="upload.php" method="post" enctype="multipart/form-data"> ファイル:<br /> <input type="file" name="upfile" size="30" /><br /> <input type="reset" name="resetfile" value="削除" /><br /> <input type="file" name="upfile" size="30" /><br /> <input type="reset" name="resetfile" value="削除" /><br /> <br /> <input type="submit" value="アップロード" /> </form> 2つの画像をサーバにアップした段階で 2つ目の削除ボタンを押した時に、2つ目の画像だけを削除したいのですが、良い方法が思いつきません。 代替案はチェックボックスですが、デザインが崩れるので避けたいと思っています。 または、javascriptで出来るようですが、あまり得意でないので、出来れば避けたいと思っています。 良い方法があれば、ご教授お願いします。

    • ベストアンサー
    • PHP
  • PHP 画像アップロード 重複防止

    画像、ファイルをアップロードできるフォームを作成しています。 ---------------------- フォーム <FORM NAME="objform" action="yes.php" METHOD="POST" ENCTYPE="multipart/form-data"> <INPUT TYPE="hidden" NAME="MAX_FILE_SIZE" VALUE="1000000"> <INPUT TYPE="file" NAME="img1" SIZE="40"><BR> <INPUT TYPE="submit" NAME="submit" VALUE="アップロードする!!"> </FORM> ーーーーーーーーーーーーーーーーーーーー yes.phpの中身 $updir = "./photo/"; $filename = $_FILES['upfile']['name']; //form の「upfile」の値 move_uploaded_file($_FILES['upfile']['tmp_name'], $updir.$filename); -------------------------- これでphoto のフォルダに格納されるようにしているのですが、 もし、同じファイル名でアップされた場合上書きされてしまいます。 IDをつけるか、もしくはその他の方法でファイル名が重複されないような設定にするにはどうすればよいでしょうか。 現在PHP勉強中です。 初歩的なことかもしれませんが、 よくわからないのでアドバイスを頂けると助かります。 よろしくお願いします。

    • ベストアンサー
    • PHP
  • WEBサイトからファイルマネージャへ直接画像をアップロードするには

    はじめまして。 自分のサイトのページからファイル参照をし、 [<FORM method="POST" enctype="multipart/form-data" action="img_upload.php"> <INPUT type="hidden" name="MAX_FILE_SIZE" value="65536"> 画像のファイル名を入力してください(最大64KByte) <INPUT size="30" type="file" name="upfile"><BR> <BR> <INPUT type="submit" name="submit" value="送信"> <INPUT type="reset" name="reset" value="リセット"> </FORM>] 自分の借りているレンタルサーバにあるファイルマネージャへ直接画像をアップし、 違うページで表示させたいのですが可能でしょうか。 サンプルソースや参考になるサイトを教えていただけるとありがたいです。 どうかよろしくお願いいたします。

  • PHP用ファイルアップロード機能について

    ドコモ端末でPHPのファイルアップロード機能を使えるようにしたいのですが、どのようにすればいいでしょうか? ちなみに、vodafoneならこの機能が使えます。 ドコモ端末で下のソースにアクセスすると、 ファイルを参照するボタンが見えず、ファイルをアップロードできません。 HTMLはキャリア毎に使えるタグがあるのは知っていますが、下のソースの場合はどのように変更すれば良いのでしょうか?ご教授下さい。宜しくお願いします。 #ソースはコレです。 <form method="post" action="upload_save.php" enctype="multipart/form-data"> <input type="hidden" name="max_file_size" value="1000000" /> <input type="file" name="upload_file" size="70"><br /> (上書き禁止) <input type="checkbox" name="forbidden" value="1" checked /> <input type="submit" value="アップロード" /> </form> #ファイル自体はphpですが、中身はほぼHTMLに関する質問になってしまい、申し訳ありません。

    • ベストアンサー
    • PHP
  • PHP 画像添付フォームに関しての質問です。

    PHP 画像添付フォームに関しての質問です。 http://okwave.jp/qa/q4891926.html 以前質問させて頂いた内容でフォームを作成しています。 申込html→finish.php の場合はうまくいきます。 申込html→確認→finish.php にするとうまくいきません。 可能であれば、確認画面でアップした画像を表示できればと思っております。 何かアドバイスして頂けると助かります。 申込html <form method="post" action="kakunin.php" enctype="multipart/form-data"> <input type="hidden" name="max_file_size" value="1000000"> <input type="hidden" name="upfile" value="%%upfile%%"> <input name="upfile" id="upfile" type="file" size="50" value="%%upfile%%"> 確認html <form method="post" action="finish.php"> <td class="border5px-fff">%%upfile%%<input type="hidden" name="upfile" value=""></td> finish.php $updir = "./photo/"; $filename = $_FILES['upfile']['name']; //form の「upfile」の値 //ファイルを指定 $id_file = "id.dat"; //ファイルを開く $fp = fopen($id_file,"r"); $id = fgets($fp); fclose($fp); //ファイルの数字に1を足します。 $id = $id + 1; $fp = fopen($id_file,"w"); //保存します。 fputs($fp, $id); fclose($fp); //名前の前に番号を追記します。 //$filename = 'ID_'.$id.'_'.$filename; //番号のみ $filename = $id.'.jpg'; move_uploaded_file($_FILES['upfile']['tmp_name'], $updir.$filename);

    • ベストアンサー
    • PHP
  • phpでのファイルアップロード

    ファイルのアップロードについてご質問があります。 宜しくお願いします。 基礎phpという本でファイルをアップロードするサンプルがあり、このスクリプトでアップロードされたファイルを格納する『upload』というディレクトリをサーバに作成し、スクリプトを実行して、実際にファイルがアップロードできているかffftpにて『upload』ディレクトリの中を見てみると、なにも表示されませんでした。しかしブラウザから http://myドメイン/upload/ファイル名 にアクセスすると表示されます。 ですのでアップロードはできているがファイルが見えないという状態になっております。また『upload』ディレクトリの削除などもできなくなってしまいます。 サーバの設定が関係しているのかとも思ったのですが、サーバの設定を変更することはできないので、プログラムがわで何とかできないでしょうか? 大変申し訳ありませんが宜しくお願いいたします。 以下がそのコードです。 【up.html】 <html> <head><title>File Uploader</title></head> <body> <form method="post" enctype="multipart/form-data" action="up.php"> <input type="file" name="upfile"> <input type="submit" value="upload"> </form> </body> </html> 【up.php】 <html> <head><title>File Uploader</title></head> <body> <p> file uploader </p> <?php $updir = "./upload/"; $filename = $_FILES['upfile']['name']; if (move_uploaded_file($_FILES['upfile']['tmp_name'], $updir.$filename) == FALSE){ print("Upload failed..."); print($_FILES['upfile']['error']); }else { print("<b>" . $filename . "</b> uploaded!"); } ?> </body> </html>

    • ベストアンサー
    • PHP
  • formの入れ子の回避方法

    アドバイス下さい。 <form method="post" name="addForm" id="addForm" action="aaa.php"> <input type="text" name="textA" id="textA"> <form method="post" name="uploadFormA" id="uploadFormA" enctype="multipart/form-data" action="aaa.php"> <input type="text" name="text1" id="text1"> <input type="file" name="upload_fileA" id="upload_fileA"> <input type="button" value="アップロード"> </form> <form method="post" name="uploadFormB" id="uploadFormB" enctype="multipart/form-data" action="aaa.php"> <input type="text" name="text2" id="text2"> <input type="file" name="upload_fileB" id="upload_fileB"> <input type="button" value="アップロード"> </form> <form method="post" name="uploadFormC" id="uploadFormC" enctype="multipart/form-data" action="aaa.php"> <input type="text" name="text3" id="text3"> <input type="file" name="upload_fileC" id="upload_fileC"> <input type="button" value="アップロード"> </form> <input type="text" name="textB" id="textB"> <input type="submit" value="送信"> </form> のような、formが入れ子になってしまっているformがあります。 これを回避する方法を教えていただきたいです。 条件としては、 ・見た目はこの順番がいい。 ・javascript、CSS等なんでも良いです。 ・各「アップロード」ボタンで、text1,2,3,4、upload_fileA,B,C,Dを送信、「送信」ボタンでtextA,Bを送信したい。 以上、お願いいたします。

    • ベストアンサー
    • HTML
  • $_FILES関数

    $_FILES関数が使えなくて困っています。 phpのバージョンは4.4です。 ソースは以下のようなものです。 ================================= <?php print_r($_FILES); ?> <html> <body> <form action="<?= $_SERVER['PHP_SELF']?>" method="POST" enctype="multipart/form-data"> <input type="file" name="upfile"/> <input type="submit" value="アップロード"/> </form> <body> <html> ================================= "アップロード"ボタンを押すと、Array()とだけ表示されます。 どうしたら、$_FILES情報が取れるのか分かる方、アドバイスお願いします。

    • 締切済み
    • PHP
  • フォームの一部のfileを送信

    上手に出来る方法をアドバイス下さい。 <form method="post" name="uploadForm" id="uploadForm" enctype="multipart/form-data" action="aaa.php"> <input type="text" name="text1" id="text1"> <input type="file" name="upload_file" id="upload_file"> <input type="button" value="アップロード"> <input type="text" name="text2" id="text2"> <input type="submit" value="送信"> </form> のようなフォームで「アップロード」が押された場合、"upload_file"だけ送信したいのですが上手い方法があるでしょうか? また、「送信」が押された場合、"upload_file"以外を送信したいです。 「POST先で無視をする」以外でお願いします。

専門家に質問してみよう