請幫助我。
我有形式像這樣的index.php
<form id="statusForm" enctype="multipart/form-data" method="post">
<textarea name="statusText" role="textbox" id="wallpost"></textarea>
<input id="photo_input" type="file" name="photo_input" />
<input type="hidden" name="to_id" value="1" >
<button type="button" name="submit" onClick="write_wall_post();">
</form>
<div id="content"></div>
那麼我.js文件來處理這種形式
function write_wall_post()
{
var formData = new FormData($("#statusForm")[0]);
$.ajax({
type: "POST",
url: "act_post_status.php",
data: formData,
success: function(data){
$("#wallpost").val("");
$("#photo_input").val('');
var newStatus=data;
$(newStatus).hide().prependTo("#content").fadeIn(2000);
},
processData: false, // tell jQuery not to process the data
contentType: false,
cache:false
});
}
和我有act_post_status.php處理此文件提交
<?php
//some configuration
if($_SERVER['REQUEST_METHOD'] == "POST")
{
//some variable declaration and image validation
//Original Image
if(move_uploaded_file($uploadedfile, $path.$time.'.'.$ext))
{
$is_image=1;
}
else
echo "failed";
}
}
//inserting data to database
$status = trim(strip_tags(htmlspecialchars($_POST["statusText"])));
mysql_query("insert into news (status,is_image) values ('$status','$is_image')");
echo "<div class='post'>$status</div>";
?>
我想要的場景是: 當用戶輸入數據(狀態),然後點擊提交按鈕,內容自動顯示更新(的jQuery處理)
但事實是:
(1)當我填寫表格(包括狀態和圖片),它工作正常。
(2)但是當我剛完成數據表單(僅填充狀態輸入)時,它已成功提交到數據庫,但內容不會自動更新。我應該刷新它們以獲得更新。 (3)當我剛剛填寫圖像輸入時,它像情況(1)一樣正常工作。
如果($ _ SERVER ['REQUEST_METHOD'] ==「POST」)在數據輸入(狀態)爲空白/空白時無法通過ajax請求回顯輸入。
數以萬計的感謝。 :)
你在哪裏設置'$ uploadedfile'? – Barmar
在代碼中,我寫了//一些變量聲明和圖像驗證,這是聲明變量部分。這不是重點,因爲圖像可以成功上傳,當我填寫圖像輸入時,它已成功更新。 問題是當我離開圖像輸入爲空。數據已成功提交到數據庫,但內容不會自動更新(需要刷新頁面)。 但是當我填充圖像輸入時(無論是否填充狀態輸入),內容將自動更新 – setyo
您在處理沒有上傳文件的表單時可能會出錯。您是否檢查過網絡標籤以查找錯誤? – Barmar