重複の可能性:
ImageId に空の値を挿入します
ユーザーがテキストエリアに質問を追加し、その下に質問を追加できるjsfiddleがここにあります。ユーザーが質問を追加すると、下の表に質問が追加されますが、ファイル入力を含む列も追加されます。ユーザーは、この入力を使用して画像ファイルを選択できます。
Jsfiddleに送信ボタンを含めていませんが、ユーザーがフォームを送信すると、ユーザーはcreate_session.phpページに移動しますが、バックグラウンドでinsertQuestion.phpに投稿する場所の下にAJAXがあります。
function submitform()
{
var fieldvalue = $("#QandA").val();
$.post("insertQuestion.php", $("#QandA").serialize() ,function(data){
var QandAO = document.getElementById("QandA");
QandAO.submit();
});
alert("Your Details for this Session has been submitted");
}
次に、insertQuestion.php で 2 つのことを行います。まず、ファイル入力フィールドからすべてのファイルをアップロードし、フォームからすべての値をデータベースに挿入します。
ただし、2 つの問題があります。
問題 1:
正しいファイル タイプをアップロードしているにもかかわらず、「無効なファイルがあります」とエコーし続けます。なぜこれを行うのか、有効なファイルに対して「無効なファイル」をエコーしないように修正するにはどうすればよいですか。
問題 2:
INSERT VALUES コードでは、ファイル入力からファイルの場所が選択されている場合でも、'ImageId' に空白の値が表示され続けます。空白の値が表示され続けるのはなぜですか?どうすれば修正できますか?
以下は、私が現在見ている INSERT VALUES の例です。
INSERT INTO Question (QuestionContent, ImageId) VALUES ('What is my Name?',''), ('What is my Age','')
以下は、insertQuestion.php の完全なコードです。
<?php
session_start();
if ((($_FILES["fileImage"]["type"] == "image/gif")
|| ($_FILES["fileImage"]["type"] == "image/jpeg")
|| ($_FILES["fileImage"]["type"] == "image/pjpeg")
|| ($_FILES["fileImage"]["type"] == "image/jpg")
|| ($_FILES["fileImage"]["type"] == "image/png")
|| ($_FILES["fileImage"]["type"] == "image/tif")))
{
if ($_FILES["fileImage"]["error"] > 0)
{
echo "Return Code: " . $_FILES["fileImage"]["error"] . "<br />";
}
else
{
echo "Upload: " . $_FILES["fileImage"]["name"] . "<br />";
echo "Type: " . $_FILES["fileImage"]["type"] . "<br />";
echo "Size: " . ($_FILES["fileImage"]["size"] / 1024) . " Kb<br />";
echo "Temp fileImage: " . $_FILES["fileImage"]["tmp_name"] . "<br />";
if (file_exists("uploadimages/" . $_FILES["fileImage"]["name"]))
{
echo $_FILES["fileImage"]["name"] . " already exists. ";
}
else
{
move_uploaded_file($_FILES["fileImage"]["tmp_name"],
"uploadimages/" . $_FILES["fileImage"]["name"]);
echo "Stored in: " . "uploadimages/" . $_FILES["fileImage"]["name"];
}
}
}
else
{
echo "Invalid file";
}
$username="xxx";
$password="xxx";
$database="xxx";
mysql_connect('localhost',$username,$password);
mysql_select_db($database) or die( "Unable to select database");
$i = 0;
$c = count($_POST['questionText']);
$insertquestion = array();
for($i = 0; $i < $c; $i++ ){
$imagequery = "SELECT ImageId FROM Image WHERE (ImageFile = '". mysql_real_escape_string($_POST['fileImage'])."')";
$imagers = mysql_query($imagequery);
$imagerecord = mysql_fetch_array($imagers);
$imageid = $imagerecord['ImageId'];
$insertquestion[] = "'".
mysql_real_escape_string( $_POST['questionText'][$i] ) ."','".
mysql_real_escape_string( $imageid [$i] ) ."'";
}
$questionsql = "INSERT INTO Question (SessionId, QuestionId, QuestionContent, QuestionMarks, OptionId, ImageId)
VALUES (" . implode('), (', $insertquestion) . ")";
echo($questionsql);
mysql_close();
?>