Почему моя асинхронная форма не может разместить входы в файл PHP из Safari, но не Chrome/Edge/Firefox?Html

Программисты Html
Ответить Пред. темаСлед. тема
Anonymous
 Почему моя асинхронная форма не может разместить входы в файл PHP из Safari, но не Chrome/Edge/Firefox?

Сообщение Anonymous »

Я выкопал много прошлых постов здесь и в других местах, но я все еще не могу найти решение моей ситуации. Моя обработка формы осуществляется JavaScript, и я использую PHP только для отправки данных по электронной почте формы, и, по крайней мере, в прошлом году, кажется, я получу отправку с пустыми входами, когда она отправлена ​​из браузера Safari, но не когда я отправляю это от хрома, края или Firefox. Это происходит независимо от того, заполняю ли я в каждом поле или оставляю дополнительное поле, поэтому я не думаю, что это связана с (старой?) Safari ошибкой, которая возникает при отправке формы с пустым вводом файла, но я не знаю. Странно то, что на моем сайте также есть асинхронная контактная форма, обрабатываемая очень похожими JavaScript и PHP, но я не получаю эту ошибку, связанные с сафари, с этой формой. Я был бы очень признателен за любые идеи или понимание, которые могут возникнуть в моем коде и ситуации. отправляется на мою электронную почту с каждым представлением (ранее по электронной почте моих пустых входов или теперь отправляю мне электронное письмо по умолчанию «пустого поля» после того, как я добавил нулевые коалсионные операторы из -за снижения PHP NULL в функции htmlspecialChars (), которую я оставил Ниже ниже, чтобы просто код, как это было, когда я впервые заметил проблему), но по какой -то причине JavaScript всегда не может публиковать данные в PHP из Safari, поэтому любая подача формы, которую я делаю из Safari, не может отправить через любой из Входные данные.

Код: Выделить всё


...
...
...


Request An Appointment!














-- Location --
X_____X
X_____X
X_____X






Submit
[img]images/loader.gif[/img]


SUCCESS: Your Request Has Been Sent!


ERROR: Please [url=tel:+X_________X]Call[/url] Or
[url=mailto:X________X]Email[/url] Me Instead.

< /code>
submit-appt.js
const apptReq = document.getElementById('appointment');

apptReq.addEventListener('submit', (e) => {
e.preventDefault();

let aname = document.getElementById('appt-name').value;
let anameError = document.getElementById('appt-nameError');
let aphone = document.getElementById('appt-phone').value;
let aphoneError = document.getElementById('appt-phoneError');
let adate = document.getElementById('appt-date').value;
let adateError = document.getElementById('appt-dateError');
let alocation = document.getElementById('appt-location').value;
let alocationError = document.getElementById('appt-locationError');
let asuccessMsg = document.getElementById('appt-successMsg');
let afailureMsg = document.getElementById('appt-failureMsg');
let asubButton = document.getElementById('appt-button');
let aloader = document.getElementById('appt-loader');

anameError.textContent = '';
aphoneError.textContent = '';
adateError.textContent = '';
alocationError.textContent = '';

if (!aname) return anameError.textContent = 'Please enter your name';
if (!aphone) return aphoneError.textContent = 'Please enter a phone number';
if (!validatePhoneNumber(aphone)) return aphoneError.textContent = 'Please enter a valid number';
if (!adate) return adateError.textContent = 'Please request an appt date';
if (Date.parse(`${adate}T00:00:00.000`) <  Date.now()) return adateError.textContent = 'Please request a future appt date';
if (!alocation) return alocationError.textContent = 'Please select a clinic';

const data = new FormData(apptReq);

asubButton.style.display = 'none';
aloader.style.display = 'block';

postData();

async function postData() {
try {
const response = await fetch('_private/php_scripts/submit-appt.php', {
method: 'POST',
body: data,
})

if (!response.ok) {
aloader.style.display = 'none';
asubButton.style.display = 'block';
afailureMsg.style.display = 'block';
} else {
aloader.style.display = 'none';
asubButton.style.display = 'block';
asuccessMsg.style.display = 'block';
}
} catch (error) {
aloader.style.display = 'none';
asubButton.style.display = 'block';
afailureMsg.style.display = 'block';
}
}
});

function validatePhoneNumber() {
let regEx = /^\+?([0-9]{3})\)?[-. ]?([0-9]{3})[-. ]?([0-9]{4})$/;
if (aphone.match(regEx)) {
return true;
} else {
return false;
}
};
< /code>
submit-appt.php


Подробнее здесь: [url]https://stackoverflow.com/questions/79422125/why-does-my-async-form-fail-to-post-inputs-to-php-file-from-safari-but-not-chrom[/url]
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Html»