※ ChatGPTを利用し、要約された質問です(原文:画面遷移させずに、選択画像ファイルを渡す方法)
画面遷移せずに選択画像ファイルを渡す方法
下記のようなPHPスクリプトにおいて、ファイル選択ダイアログで選択したファイルを
bbs.php で、$photo変数をGETで受け取るにはどうすればいいのでしょうか?ちなみに今のところ、受け取った
$photo変数の中身はNULLです。
GET渡し以外にも方法があれば教えていただきたいです。(たとえば、$_SESSION['']変数を利用するなど)
【bbs.php】
<td><b>画像を添付</b></td>
<!-- インラインフレーム -->
<td><iframe src="test.html" width="460" height="40" frameborder="no" scrolling="no">
フレームを表示できないブラウザへのメッセージ
</iframe>
</td>
~
<?php
$photo = $_GET['photo']; // 添付画像ファイル名
?>
---------------------------------------------------------------
【test.html】
<html>
<head><title>ファイルのアップロード</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
<body text="white">
<table rows="1" cols="3" height="30" border="0">
<tr>
<td valign="top">画像選択(10MB以下)</td>
<form action="./file_upload.php" method="post" enctype="multipart/form-data" target="upload_frame">
<!-- upload_frame : ダミーフレーム -->
<input type="hidden" name="max_file_size" value="10240000">
<td valign="top"><input type="file" name="sendfile" /></td>
<td valign="top"><input type="submit" value="送信" /></td>
</form>
</tr>
</table>
<div id="container"></div>
<iframe name="upload_frame" sytle="display:none;"></iframe>
</tr>
</form>
</table>
</body>
</html>
----------------------------------------------------------
【file_upload.php】
<?php
$upload_dir = './files/';
$filename = $_FILES['sendfile']['name'];
if(move_uploaded_file($_FILES['sendfile']['tmp_name'], $upload_dir.$filename)){
echo "画像".$filename."をアップロードしました。<br><br>";
// データベースの画像カラムを挿入する
$con = mysql_connect("~", "~", "~"); // ローカルのMySQLデータベースサーバーに接続する
mysql_select_db("~"); // データベースサーバーに存在する(myPHPAdminで作成済みの)データベースを選択する
// ラストレコードの画像ファイルカラムを更新する
$sql = "UPDATE bbstbl SET(photo=$_FILES['sendfile']['name']) WHERE ORDER BY sid limit 1;";
$result = mysql_query($sql, $con);
$rowco = mysql_affected_rows($con); // テーブルの行数
mysql_close($con); // データベースとの接続を解除する
// header("Location: bbs.php?photo=$filename");
}else{
echo "画像のアップロードに失敗しました。<br><br>";
}
?>
<script type="text/javascript"><!--
var container = parent.document.getElementById('container');
image = parent.document.createElement('img');
image.src = './<?php print($filename);?>';
container.appendChild(image);
//--></script>
-------------------------------------------------------------
お礼
詳しいご指導、どうもありがとうございました。 AJAXにつきましては、これから勉強しようと思っております。