そのため、PHP と HTML のみを使用して画像の有無にかかわらず statusupdates をアップロードすることから、PHP、AJAX、および HTML を使用するようにサイトを変換しようとしてきたので、データベースなどを正常に更新するためにまったく新しいページをロードする必要はありません。画像をアップロードするまではうまくいきました。
私の JavaScript/jQuery/AJAX コードは次のようになります。
$(function() {
$("#statusupdate").on('submit', function (e) {
var category = $("#statusupdate input[type=radio]:checked").val();
var text = $("textarea#statusupdate_text").val();
var file = $("input#file").val();
$.ajax({
type: "POST",
url: "snippets/post_statusupdatequery.php",
data: { category : category, text : text, file : file },
success: function() {
$('#statusupdate').html("<div id='success_status'></div>");
$('#success_status').html("<h2>Post Submitted!</h2>")
.append("<p>We will be in touch soon.</p>")
.hide();
}
});
return false;
e.preventDefault();
});
});
http://pastebin.com/fSGFa32D と私の PHP コードは次のようになります。
if (!empty($_FILES['userfile'])) {
$raw_text = $_POST['text'];
$text = mysql_real_escape_string($raw_text);
$uploaddir = '/var/www/images/imageupdate/';
$filename = "".$id."-".$time."";
$uploadfilenam = basename($filename);
$uploadfilename = $uploadfilenam.".png";
$uploadfile = $uploaddir.$uploadfilename;
if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile)) {
mysql_query("INSERT INTO imagepost
(userid, text, image, date)
VALUES('$id', '$text', '$uploadfilename', '$time') ") or die(mysql_error());
}
} else {
echo '<script>alert(" Select a file to upload! ");</script>';
}
現在、私が知る限り、PHP コードの最初の if ステートメントで失敗し、stackoverflow 全体をグーグル検索して検索しましたが、このような問題は見つかりません。
助けてください、ファイルを「AJAX経由で送信」してPHPに送信するのに何が欠けていましたか?