をアップロードされていない場合でも、これは私のHTMLコードで設定するには、ファイルアップロードのフラグを設定する:PHPコードは常に何も
<form id="broadcastForm" onSubmit="return false;" enctype="multipart/form-data">
<div>
<label for="image">Select an Image to Broadcast (Optional) <span class="text-danger">[Make sure image size is less than 500Kb]</span></label>
<input type="file" accept="image/*" class="btn btn-primary" id="image" name="image[]" class="fileinput" style="margin-top: 10px;" />
<div class="preview_box">
<img id="preview_img" src=""/>
</div>
</div>
<textarea class="textarea form-control" name="message" id="message" placeholder="Enter Message To Broadcast.." style="width: 100%; height: 125px; font-size: 14px; line-height: 18px; border: 1px solid #dddddd; padding: 10px;"></textarea>
</form>
これは私のjQueryのコードです:
$("button#brodcastMessage").click(function()
{
var proceed = true, image = $("#image").val(), message = $("#message").val(), type = "", dataSend = "";
var formData = new FormData();
if(image == "" && message == "" || image == null && message == null)
{
proceed = false;
swal({
title: "Error Sending Email!",
text: "To send Email Broadcast to your subscribers you need to either select an image or enter the broadcast message. Both the fields are blank!",
icon: "error",
});
}
else if(image == "" || image == null && message != "")
{
proceed = true;
formData.append('message', message);
formData.append('image', "");
}
else if(message == "" || message == null && image != "")
{
proceed = true;
formData.append('image', $('#image')[0].files[0]);
}
else if(message != "" && image != "")
{
proceed = true;
formData.append('message', message);
formData.append('image', $('#image')[0].files[0]);
}
if(proceed)
{
$("button#brodcastMessage").addClass('disabled').attr('disabled', 'true').html("Sending Mail Please Wait...");
$.ajax({
url: '/ajax?id=broadcast',
type: 'POST',
data: formData,
cache: false,
contentType: false,
processData: false,
success:function(response)
{
resp = response.slice(-3); //read last three characters of a string
if(resp == "ack")
{
$("form#upload_form").trigger('reset');
$("#image").val("");
$('#preview_img').attr('src', '');
$("button#brodcastMessage").removeClass('disabled').html('Send <i class="fa fa-arrow-circle-right"></i>').removeAttr('disabled');
$("form#emailFormSend").trigger('reset');
swal({
title: "Message Sent!",
icon: "success",
});
}
else if(resp == "nak")
{
$("button#brodcastMessage").removeClass('disabled').html('Send <i class="fa fa-arrow-circle-right"></i>').removeAttr('disabled');
swal({
title: "Error Sending Email!",
text: "Please Try Again!",
icon: "error",
});
}
else
{
$("button#brodcastMessage").removeClass('disabled').html('Send <i class="fa fa-arrow-circle-right"></i>').removeAttr('disabled');
swal({
title: "Error Log!",
text: response,
icon: "error",
});
}
},
error:function(response)
{
$("button#brodcastMessage").removeClass('disabled').html('Send <i class="fa fa-arrow-circle-right"></i>').removeAttr('disabled');
swal({
title: "Network Error!",
text: "There was an Error Processing your request! Please try again after some time!",
icon: "error",
});
}
});
}
});
これは私のPHPコードです:
if($_GET['id'] == "broadcast")
{
if($_POST['message'] == "" || $_POST['message'] == null && isset($_FILES) && !empty($_FILES))
{
//file variable is set
$counter = "file";
}
if(isset($_FILES) && empty($_FILES) && $_POST['message'] != "" || $_POST['message'] != null)
{
//message varibale is set
$counter = "message";
}
if(isset($_FILES) && !empty($_FILES) && $_POST['message'] != "" || $_POST['message'] != null)
{
//both are present
$counter = "both";
}
echo $counter;
exit();
}
こんにちは、私はajaxファイルのアップロードをしようとしています。今、私は2入力4つの条件
1.) Either both of them are blank (i have handled this on client side)
2.) Either I only want to broadcast message but not image
3.) Either I want to broadcast image but not message
4.) Either I want to broadcast both image and message
が可能になりましたので、私は問題がときがあるということであるPHPとjQuery側の検証でこれを設定している
1.) Select image &
2.) Enter message
を提供しているブロードキャストメッセージを作成していますメッセージが設定され、ファイルノートが設定されている場合、PHPスクリプトは画像を提供し、エラーは未定義の変数です。私のスクリプトが何をしているか
は、ファイルがfile
エコースクリプトをアップロードされていないと私はNYのイメージをuploadedaしていないと、テキストのみのメッセージは、それがboth
エコー設定されている場合、私は過去4時間ので、ここで立ち往生していたとしてもです。私のスクリプトが間違っているか、ロジックがうまくいかないことはわかりません。誰もこの論理で私を助けることができますか? false
'print_r($ _ FILES);は何を出力しますか? – bassxzero
$( "#image")とは何ですか?val()はAJAXリクエストを送信する前と同じですか? image []という名前の画像入力はなぜですか? –
@ i-man 'image []'は、imageという名前のファイルの配列を作成するために使用されます。 – bassxzero