Показать сообщение отдельно
  #9 (permalink)  
Старый 27.10.2016, 14:27
Профессор
Отправить личное сообщение для smart-create Посмотреть профиль Найти все сообщения от smart-create
 
Регистрация: 25.10.2016
Сообщений: 157

Добрый день, laimas! Я понимаю что уже порядком надоел Вам свой некомпетентностью, но увы, не знаю как по другому научиться делать правильно, и очень благодарен Вам за то что Вы уже очень помогли!
Сегодня новый день и возникли новые вопросы. Я переделал свой скрипт, учитывая все Ваши правки (некоторые моменты написал по другому, в силу того что не совсем понял что вы имели в виду в предыдущем ответе). Самое главное что теперь скрипт заработал так как нужно, каждая форма обрабатывается им отдельно, и я необычайно этому рад)
Но появилась другая проблема которая поставила меня в тупик окончательно, перестала работать отправка формы. То есть сам скрипт отлично отрабатывает все условия и генерирует отправку. НО сама отправка не происходит - данные в БД не заносятся, и на e-mail соответственно не отправляются.
Могли бы Вы еще разок взглянуть на все мое "творение" в комплексе?

<!-- Форма -->
<form method="post" action="main_c/order_1">
	<input type="text" name="name" placeholder="Введите ваше имя *" /><br />
	<input type="text" name="phone_1" placeholder="Введите номер телефона *" /><br />
	<button type="submit" name="btn_order_1">Жду звонка!</button>
</form>
<!-- EXIT Форма -->


<!-- Скрипт -->
$(function() {
	$.valHooks.input = {
		get: function(e) {
			return $.trim(e.value)
		}
	};
	$("form").submit(function(e){
		e.preventDefault();
		var f = this, 
			e = $(f.elements).slice(0, -1);
		
		if(!$.trim(this.name.value) || !$.trim(this.phone_1.value) || !$.trim(this.email.value)){
			e.addClass('input-error');
		}else{
			e.removeClass('input-error');
			e.addClass('input-success');
			$.ajax({
				url: f.action,
                                type: 'POST',
                                dataType: 'json',
                                success: function(data) {
                                      f.reset();
                                },
			});
		}
	});
})
<!-- EXIT Скрипт -->

<!-- Контролер который обрабатывает форму и генерирует отправку на email -->
function order_1() {
	if (isset($_POST['btn_order_1'])) {
		header("Cache-Control: no-store, no-cache, must-revalidate");
		$client['name']  = $_POST['name'];
		$client['phone_1']  = $_POST['phone_1'];
		$this->main_model->new_order_1($client);
		
		$this->email->from('ru.marketroll@gmail.com', 'ЗАГОЛОВОК');
		$this->email->to('velichko.my.site@gmail.com'); 
		$this->email->subject('ТЕМА');
		$this->email->message('Имя: '.$client['name']."\r\n".'Номер телефона: '.$client['phone_1']);	
		$this->email->send();
			
		echo json_encode($client);
	}
}
<!-- EXIT Контролер  -->


<!-- Модель которая принимает данные от контролера и вносит их в БД -->
function new_order_1($client){
	$array = array(
		'name' => $client['name'],
		'phone_1' => $client['phone_1']
	);
	$this->db->insert('client', $array); 
}
<!-- EXIT Модель  -->


Самое главное что вся эта система работала с тем изначальным (пусть и очень корявым/страшным) скриптом, а сейчас нет, и консоль не дает не каких ошибок, просто нечего не происходит. Я понимаю что причина этого кроется где-то здесь, в алгоритме отправки через AJAX:
$.ajax({
	url: f.action,
        type: 'POST',
        dataType: 'json',
        success: function(data) {
             f.reset();
        },
});


Но в чем именно причина, до меня не как не доходит, перепробовал все что мог и все что знал...
Ответить с цитированием