#php #codeigniter
#php #codeigniter
Вопрос:
У меня есть одна форма, в которой я хочу загрузить изображение и видео, и мне нужно заполнить некоторую информацию. До завершения формы кнопка отправки отключена, а после завершения загрузки видео и изображений и заполнения всех полей она должна быть включена.
$("#uploadify").uploadify({
height : 30,
swf : urljs '/public/js/uploadify.swf',
uploader : urljs '/public/js/uploadify.php',
folder : "../../../uploads",
width : 120,
fileSizeLimit : '200000KB',
fileTypeDesc : 'Video Files',
fileTypeExts : '*.*;',
formData : {
folder : '../../private/<?php echo $userId;?>'
},
onUploadSuccess : function(file, data, response) {
$("[name=coursebanner]").val(file.name);
$("[name=banner]").attr("src",'<?php echo base_url();?>private/<?php echo $userId;?>/' file.name);
}
});
$(".filedtls").hide();
$("#contentupload").uploadify({
height : 30,
swf : urljs '/public/js/uploadify.swf',
uploader : urljs '/public/js/uploadify.php',
folder : "../../../uploads",
width : 120,
fileSizeLimit : '40MB',
fileTypeDesc : 'Video Files',
fileTypeExts : '*.*;',
formData : {
folder : '../../private/<?php echo $userId;?>/beforeconvert',
folder1 : '../../private/<?php echo $userId;?>',
userId : <?php echo $userId?>
},
'onComplete': function(event, queueID, fileObj, response, data) {
console.log(response);
},
'onUploadSuccess' : function(file, data, response) {
$("[name=promovideoname]").val(file.name);
}
});
$('#createcoursebasicform > input').keyup(function() {
var empty = false;
$('#createcoursebasicform > input').each(function() {
if ($(this).val() == '') {
empty = true;
}
});
if (empty) {
$('#save').attr('disabled', 'disabled');
} else {
$('#save').removeAttr('disabled');
}
});
и
<div class="col-md-9">
<form id="createcoursebasicform">
<input type="hidden" name="courseId" value="<?php echo $courseId;?>"/>
<div class="create-course-content">
<!-- COURSE BANNER -->
<div class="course-banner create-item">
<div class="row">
<div class="col-md-3">
<h4>Course Banner</h4>
</div>
<div class="col-md-9">
<div class="image-info">
<img name="banner" src="<?php echo base_url();?>public/images/placeholder.jpg" alt="">
</div>
<input type="hidden" name="coursebanner"/>
<div class="upload-recrop">
<div class="upload-image up-file" id="uploader">
<a href="#"><i class="icon md-upload"></i><div id="uploadify"></div></a>
</div>
</div>
</div>
</div>
</div>
<!-- END / COURSE BANNER -->
<!-- PROMO VIDEO -->
<div class="promo-video create-item">
<div class="row">
<div class="col-md-3">
<h4>Promo Video</h4>
</div>
<div class="col-md-9">
<div class="form-item">
<input type="text" placeholder="Paste URL">
</div>
<div class="upload-video up-file">
or
<a href="#"><i class="icon md-upload"></i><div id="contentupload"></div></a>
<input type="hidden" name="promovideoname">
</div>
</div>
</div>
</div>
<div class="duration create-item">
<div class="row">
<div class="col-md-3">
<h4>Duration</h4>
</div>
<div class="col-md-9">
<div class="duration-ct">
<div class="form-item">
<input type="text" name="duration">
</div>
<span class="day">days</span>
</div>
</div>
</div>
</div>
<div class="form-action">
<input id="save" type="submit" value="Save and Next" class="submit mc-btn-3 btn-style-1" disabled="disabled">
</div>
</form>
</div>
Ответ №1:
Я всегда использую JavaScript для отключения и включения кнопки отправки.
HTML
<input type="submit" id="switch" value="xxxx" disabled="disabled" />
Возможно, вы захотите передать флаг после завершения загрузки. Скажем Finish
, и поместите его в Json, тогда вы могли бы использовать AJAX для получения Finish
данных с сервера.
JavaScript
$.ajax({
url: "test.php",
dataType: "json",
success: function(data){
data.Finish ? $switch.attr('disabled', true) : $switch.removeAttr('disabled');
}
});
Ответ №2:
Вы можете использовать jQuery с вызовом Ajax для отправки и использования :
beforeSend
чтобы отключить кнопку отправки!
Комментарии:
1. Я обновил свой вопрос, и я попробовал так, но он не работает. Что-то не так.
2.
$('#createcoursebasicform > input').keyup(function() { var empty = false; $('#createcoursebasicform > input').each(function() { if ($(this).val() == '') { empty = true; } }); if (empty) { $('#save').attr('disabled', 'disabled'); } else { $('#save').removeAttr('disabled'); } });
3. И в чем проблема?
4. Я решил это, добавив `<input id=»switch» type =»submit» value=»Save and Next» class=»submit mc-btn-3 btn-style-1″ disabled=»disabled» style =»курсор: запрещен»>` и в
onUploadsuccess $("#switch").attr("disabled", false);
нем будет работает во время первой загрузки видео. Я хочу отключить это, когда загрузка второго видео означает загрузку нескольких видео.5. Поэтому вам следует либо загрузить все видео вместе, либо снова запустить jQuery для проверки!
Ответ №3:
Когда вы получаете запрос $ _post или $ _get от пользователя, используйте приведенный ниже html-код для отключения кнопки
<input type="Submit" value="Upload" <?php echo $disable; ?> />
значение $disable out из if($_post) или оператора get равно NUll или «. в условии if используйте $disable = ‘отключено’;
Загрузите все свои файлы и данные, когда вы достигнете EOF, сделайте $disable=Null .