早上好。我正在嘗試使訊息的表單提交更加流暢,避免重新加載頁面以發送它。由于訊息可能是文本或影像,我需要將它們都發送到 PHP 頁面進行上傳。我在 html 頁面中使用此代碼:
<form id="newmessage" enctype="multipart/form-data">
<textarea form="newmessage" id="messagetext" name="messagetext" ></textarea>
<input type="submit" name="submit" value="send" onclick="return newMessage();">
<input type="file" accept="image/*" id="image" name="image">
</form>
<script>
function newMessage(){
var messagetext = document.getElementById("messagetext").value;
var image = document.getElementById("image").value;
$.ajax({
type:"post",
url:"new_message.php",
data:
{
"messagetext" :messagetext,
"image" :image,
},
cache:false,
success: function(html) {
document.getElementById("messagetext").value = "";
}
});
return false;
}
</script>
如您所見,我允許用戶輸入文本區域或上傳檔案。當他們提交表單時,呼叫 newMessage() 方法并將影像和訊息文本發送到 new_message.php,由它處理它們:
// new_message.php
$messagetext = $_POST["messagetext"];
$image = $_FILES["image"]["tmp_name"];
if((!empty($messagetext) || isset($image))) {
if(!empty($messagetext)) {
// create text message
} else if(isset($image)) {
// create image message
}
}
當我寫一條短信時,它作業得很好,但如果它是影像,它就不會發送任何東西。也許 AJAX 中的影像變數沒有正確獲取檔案。如果這個問題不清楚,我很抱歉,但我是 StackOverlow 的初學者,我愿意編輯。感謝所有回復。
uj5u.com熱心網友回復:
你能試試這個嗎?您無需擔心 textarea 中的檔案和訊息。確保您已添加 jQuery。
$("#newmessage").on("submit", function(ev) {
ev.preventDefault(); // Prevent browser default submit.
var formData = new FormData(this);
$.ajax({
url: "new_message.php",
type: "POST",
data: formData,
success: function (msg) {
document.getElementById("messagetext").value = "";
},
cache: false,
contentType: false,
processData: false
});
return false;
});
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/406162.html
標籤:
上一篇:添加基于值的類(jquery)
