Показать сообщение отдельно
  #13 (permalink)  
Старый 27.10.2016, 16:07
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Сообщение от smart-create
На самом деле (как по мне) эта информация уже бесполезна
То есть, одним сценарием вот так:

if(!$.trim(this.name.value) || !$.trim(this.phone_1.value) || !$.trim(this.email.value))

проверить любую форму с полями имеющими какие угодно имена?

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

Что метод $.ajax() jQuery, что плагин ajaxSubmit, это одно и тоже - организация асинхронного обмена данными с сервером. Что первый, что второй можно и выбросить, и написать такой обмен на том, что эти методы и используют - XMLHTTPRequest. И без проблем данные будут отправляться серверу, то есть ошибка совсем не в методе. Смотрим то, что вы считаете "бесполезной информацией":

<input type="text" name="name" placeholder="Введите ваше имя *" /><br />
<input type="text" name="phone_1" placeholder="Введите номер телефона *" /><br />

А скрипт проверяет условия:

if(!$.trim(this.name.value) || !$.trim(this.phone_1.value) || !$.trim(this.email.value))

Вопрос - если в форме отсутствует как таковое поле email будет ли выполнятся условие и в конечном итоге отправка формы серверу?

e = $(f.elements).slice(0, -1); - я пояснял почему так взяты элементы формы, и что их нужно будет проверить проходом в цикле. Как выясняется все одинаково, можно обойтись и без цикла, но

e.addClass('input-error'); - добавит указанный класс всем элементам формы содержащимся в коллекции е. Но ведь не факт, что все поля не заполнены, может не заполнено только одно, а зачем все отмечать ошибкой?

По поводу приема данных сервером. Это в общем то бардак, а не прием данных. Северу все равно проверялись ли данные на клиенте ли нет, он просто обязан проверить их - заполнены ли поля обязательные, возможно и имя, если есть на него условия, а уж номер телефона и электронного адреса (что-то его не видно не только на клиенте, но и в обработке на сервере) тем более нужно проверять. Иначе вы получите на сервере набор мусора, типа name=>" " и phone_1=>abc.

header("Cache-Control: no-store, no-cache, must-revalidate"); - это для чего? А это зачем - echo json_encode($client);? Зачем отправлять данные клиенту, которые он получил, а клиент их и так имеет, тем более, судя по коду, клиенту они и не нужны.

Вот эта функция вообще прелесть:

function new_order_1($client){
$array = array(
'name' => $client['name'],
'phone_1' => $client['phone_1']
);
$this->db->insert('client', $array);
}

То есть переменная $client уже определена массивом

array(
'name' = $_POST['name'];
'phone_1' = $_POST['phone_1'];
);

в функции order_1(), передана в функцию, а значит достаточно в ней - $this->db->insert('client', $client); и все, нет надо массив переписать заново только под другим именем, чтобы записать в базу. Это даже не глупость, это дикость. А если данные сервер не проверяет к тому же, представляете что может база хранить?

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

Последний раз редактировалось laimas, 27.10.2016 в 16:27.
Ответить с цитированием