何らかの理由で、フォームで選択したアップロードを$_FILES配列に含めることができません。私が読んだものから、フォームは問題ないように見え、他のすべての変数は問題なく受け取られます。
フォームを送信するたびに、$_FILES配列のvar_dumpには0個のエントリがあります。
この投稿では、他のフィールドが機能しているため、簡潔にするために他のフィールドを削除しました。
<form name="addFact" id="addFact" action="add_fact.php" method="post" enctype="multipart/form-data" onsubmit="return validateStatus();" >
<input type="file" id="myImage" name="myImage" style="width:450px;"/><br />
</form>
そして、リロードした後、以下を使用して$_FILES配列をチェックします。
echo "- Files - <br>\n";
echo "<pre>\n";
var_dump($_FILES);
echo "</pre>\n";
しかし、結果は毎回空になります。
ファイル:array(0){}
更新 申し訳ありませんが、検証ステータスがまだそこにあることに気づいていませんでした..しかし、これはフォームを送信するかどうかをチェックするJSです
function validateStatus() {
jQuery("#addFact").validationEngine({scroll: false});
var valid = $("#addFact").validationEngine('validate');
if (valid == true) {
submitForm('addFact');
}
return false;
}
フォームはファイルフィールドなどを含むすべての属性が設定されたまま正常に送信されるため、これが問題の一部であるとは思えませんが。
ああ..そして笑..別の関数..:)...ここにsubmtフォーム関数があります:
function submitForm(formName,message) {
$.ajax({
data: $("#" + formName).serialize(),
type: $("#" + formName).attr('method'),
url: $("#" + formName).attr('action'),
success: function(response) {
$('#load_target').html(response);
}
});
return false;
}
load_targetは、このphpファイルをajaxでロードしているインデックスページのdivです。-それが今すべて明確になっていることを願っています:)
また、何も投稿していないフォームのコンレンをビレイするために..ここに投稿var_dumpの結果があります
array(11) {
["action"]=> string(4) "save"
["category"]=> string(1) "3"
["startDate"]=> string(10) "09-27-2012"
["expireDate"]=> string(10) "11-27-2012"
["title"]=> string(10) "Test Title"
["subtitle"]=> string(10) "Test Title"
["include_image"]=> string(3) "yes"
["img_loc"]=> string(4) "left"
["img_size"]=> string(2) ".3"
["scroll"]=> string(1) "1"
["fact_text"]=> string(27) "there's something about her"
}