Показать сообщение отдельно
  #11 (permalink)  
Старый 09.10.2017, 21:43
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

1) Зачем именно так проверять - data.ok == '1'? Функции json_encode задайте опцию JSON_NUMERIC_CHECK и числа будут как числа - json_encode($message_ok, JSON_NUMERIC_CHECK);

2) print json_encode($message_ok); - такое допустимо только в том случае если это и есть завершение кода, иначе может быть не контролируемый вывод в браузер (например после закрывающего тега РНР есть пробелы, переводы строк, ...), что породит ошибку и вы ничего не получите в success. Ошибки либо в другом методе Ajax проверять, либо в success в соответствующем аргументе функции.

Уж коли это завершение работы, то лучше так:

$message = mail($mailto, $subject, $multipart, $headers) ? ["ok" => 1, "text" => "Все Ок"] : ["ok" => 2, "text" => "Увы, ошибка"];
       exit(json_encode($message, JSON_NUMERIC_CHECK));


Учтите, что mail возвращает информацию всего лишь об успешной или нет передаче отправления в sendmail. Эта функция не проверяет ошибок, ни того что почта отправлена. Ошибки могут прийти на сервер потом, после реального отправления почты.
Ответить с цитированием