0

そのため、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>';
  }

http://pastebin.com/6Yam6Mtd

現在、私が知る限り、PHP コードの最初の if ステートメントで失敗し、stackoverflow 全体をグーグル検索して検索しましたが、このような問題は見つかりません。

助けてください、ファイルを「AJAX経由で送信」してPHPに送信するのに何が欠けていましたか?

4

1 に答える 1

0

この JavaScript 構文を使用してファイルをアップロードすることはできません

var file = $("input#file").val();

ファイル要素を含むフォームを送信するには、jquery ajaxフォームを使用します。また、フォームにenctype=multipart/form-data

ajaxフォームを機能させるには、最初にhtmlフォームをセットアップします

<form id="myform" ...>.........</form>

次にjquery、単に実行するだけで、コードをフォーム送信イベントに添付できます

$('#myform').ajaxForm(); //you can pass the same options as you would pass to $.ajax(); 
于 2013-07-10T01:56:26.493 に答える