Добрый день! Пытаюсь написать обработчик формы через которую пользователь оставляет отзыв и может прикрепить фотографию.
Все отлично работает кроме загрузки фотографии, она попросту не загружается, а почему я не понимаю, все делаю правильно вроде бы, а она не грузиться хоть ты убей, при этом консоль нечего не говорит, успешно возвращается success, и network в консоли говорит что все "ок, информация передана".
Может быть причина в php, может в клиенте, я уже не знаю, прошу взглянуть на мои скрипты, может вы поймете где у меня ошибка:
Разметка формы:
<form id="contact-form" enctype="multipart/form-data" method="post" action="comments/add_comments">
<input type="name" placeholder="Ваше имя" name="comments_name">
<input type="text" placeholder="Город/поселок" name="comments_city">
<input type="email" placeholder="Ваш e-mail адрес" name="comments_email">
<input type="tel" placeholder="Ваш номер телефона" name="comments_phone">
<textarea placeholder="Пожалуйста напишите Ваш отзыв, здесь" name="comments_message" rows="3"></textarea><br>
<br>
<label class="control-label">Вы можете поделиться фотографиями с отдыха:</label><br>
<br>
<input type="file" name="img">
<br>
<button type="submit" class="button--8">ОСТАВИТЬ ОТЗЫВ</button>
</form>
JS обработчик формы:
$("form#contact-form").submit(function(e){
e.preventDefault();
var f = this,
data = $(f.elements).slice(0, -1),
s = $(f.elements).last(),
e = s.end().slice(0, -2).removeClass('input-error').filter(function() {
return !$.trim(this.value)
});
if(e.length) e.addClass('input-error');
else {
s.prop('disabled', 1);
s.end().not(s);
$.ajax({
url: f.action,
type: 'POST',
data: data,
dataType: 'json',
success: function(data) {
thx('open');
create_comments(data);
f.reset();
s.prop('disabled', 0);
e.removeClass('input-error');
$('body').animate(
{
scrollTop:$('.row.comment:first').offset().top - $('.navbar').outerHeight()
},
500
);
}
});
}
});
Обработчик на сервере:
//КОНТРОЛЛЕР
function add_comments() {
$config['upload_path'] = './photo/';
$config['allowed_types'] = 'gif|jpg|png|jpeg';
$config['max_size'] = '3000';
$config['encrypt_name'] = TRUE;
$config['remove_spaces'] = TRUE;
$this->load->library('upload', $config);
$this->upload->do_upload();
$image_data = $this->upload->data();
$comments['name'] = $_POST['comments_name'];
$comments['city'] = $_POST['comments_city'];
$comments['email'] = $_POST['comments_email'];
$comments['phone'] = $_POST['comments_phone'];
$comments['comment'] = $_POST['comments_message'];
$comments['img'] = $image_data['file_name'];
$comment_id = $this->main_model->new_comments($comments);
$comment = array();
if ($comment_id)
{
$comment = $this->main_model->get_comments_limit(0,1);
}
echo json_encode($comment);
}
// МОДЕЛЬ
function new_comments($comments){
$array = array(
'date' => date("Y-m-d H:i:s", time()),
'name' => $comments['name'],
'city' => $comments['city'],
'email' => $comments['email'],
'phone' => $comments['phone'],
'comment' => $comments['comment'],
'img' => $comments['img']
);
$this->db->insert('comments', $array);
return $this->db->insert_id();
}
Заранее благодарен за любую помощь
P.S. Серверная часть написана на php-фреймворке Codignaiter