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

Я приношу извинения за некоторые неточности, предыдущие сообщение писал не с ПК а с телефона, по этому не много запутался что и от куда копирую.

На счет наличия пункта "email" - давайте его упустим, добавить одно поле, в процессе я смогу и сам, надеюсь справлюсь

Оставим в сценарии проверки:
Цитата:
if(!$.trim(this.name.value) || !$.trim(this.phone_1.value))
На счет приема данных на сервере, я знаю что там сплошной "быдло код", и это будет следующий пункт с которым мне необходимо разобраться, НО сейчас для меня главное что это самый "быдло код", принимает и отправляет данные, я хочу привести в порядок клиента, а потом перейти к оптимизации сервера. На счет вот этого:
Цитата:
header("Cache-Control: no-store, no-cache, must-revalidate");
, приношу извинения, это вообще не от туда..., при копировании "затесалось под шумок".

Цитата:
Заголовок подтягивается не из инпутов, а не посредственно из верстки. - этого в коде не наблюдается, а догадаться чего там у вас конкретно, как я уже говорил, я не могу. Будет конкретика, будет и конкретный код без лишнего.
- давайте обойдемся и без этого? Как и в случае поля с email, я думаю смогу разобраться как обработать и это поле, по уже готовому примеру, что бы не отнимать у Вас слишком много времени.

Если сформулировать это все конкретно и на конкретном примере:
- Я создал только что тестовую страницу, в ней есть 2 формы (абсолютно идентичны между собой):
<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>

<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>


Они должны обрабатываться вот этим скриптом:
$(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();
                },
            });
        }
    });
})


И передаваться на сервер, где полученную информацию с формы обрабатывает вот этот контролер:
function order_1() {
    if (isset($_POST['btn_order_1'])) {
        $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);
    }


Повторюсь, я знаю что обработчик на сервере написан "не красиво", - я это обязательно исправлю, но чуть позже. Сейчас для меня главное что он работает. А вот при передаче ему информации от клиента происходит какая то ерунда, с которой я увы не могу сам разобраться.

Я постарался изложить всю конкретику которую только смог собрать. Если нужны еще какие либо подробности, или исходные данные, пожалуйста уточните что именно это может быть

Последний раз редактировалось smart-create, 27.10.2016 в 17:24.
Ответить с цитированием