ファイルがまだ入力されていない場合は別のajaxを実行します。しかし、まだフォームアクションを投稿しています。CodeIgniterでAJAXを使用してファイルをアップロードする値がnullでも定義されていなくても実行されます
はここに私のビューのコードです:
<form method="POST" id="quiz_file" action="<?php echo site_url('home/upload_quiz/' . $kelas);?>" enctype="multipart/form-data">
<input name="filequiz" id="filequiz" type="file" />
</form>
そして、これが私のJSです:私はちょうどそれを実行すると
$('#submitquiz').on('click', function(event) {
var inputFile = $('input[name=filequiz]');
document.getElementById('submitquiz').disabled = true;
var fileToUpload = inputFile[0].files[0];
// make sure there is file to upload
if (undefined != fileToUpload)
{
var uploadURI = $('#quiz_file').attr('action');
var formData = new FormData();
formData.append("file", fileToUpload);
alert('if');
$.ajax({
url: uploadURI,
type: 'post',
data:
{
formData : formData,
asid : asid_quiz,
value : cmbValue
},
processData: false,
contentType: false,
success: function(data)
{
}
});
}
else
{
alert('else');
$.ajax(
{
type: 'POST',
url:'<?php echo site_url("home/assignment_score"); ?>',
data:
{
asid : asid_quiz,
value : cmbvalue,
kelas : <?php echo $kelas;?>,
dataType:"JSON"
},
success: function(data)
{
console.log('asdasd' + data);
alert('Quiz score submitted');
}
});
は、それが示す警告メッセージ "他に"。しかし、フォームアクションからアップロードアクションを実行します。
これはどうして起こる可能性がありますか?どのようにアップロードアクションの実行を停止し、 'else'側で別のajaxリクエストを実行するのですか?
あなたはjquery.formプラグインを使用することはでき提出する必要があり、その後、AJAXを使用してデータを送信している場合、私はあまりにもあなたを好む、http://malsup.com/jquery/form /#file-upload –
'#submitquiz'が' type = "submit"の入力である場合、送信ボタンの "default"アクションを防ぐ必要があります。例えば 'event.preventDefault()' –
はあなたですか?私のポイントを得る? –