Сторона PHP :
Код: Выделить всё
$Submitted_data = json_decode(file_get_contents('php://input'), true); //saving the Post Request
//process data
if ($conn->query($sql) === TRUE) {
$Submitted_data["sqlTX"] = "New record created successfully";
echo json_encode($Submitted_data);
} else {
echo "Error: " . $sql . "
" . $conn->error;
}
Код: Выделить всё
function txData() {
const form = document.getElementById('dataInput');
const time = new Date().toLocaleDateString('en-EN') + " - " + new Date().toLocaleTimeString('en-EN');
const formattedFormData = {} //resetting object since i was thinking thats the issue
formattedFormData.Name = form.Name.value;
formattedFormData.Attend = form.Attend.value;
formattedFormData.Participants = form.Participants.value;
formattedFormData.Contact = form.Contact.value;
formattedFormData.Message = form.Message.value;
formattedFormData.Timestamp = time;
console.log("initial formattedFormData");
console.log(formattedFormData);
return fetch('submitAttendance.php',
{
method: 'POST',
body: JSON.stringify(formattedFormData)
})
.then(function(response) {
return response.json();
})
.then(function(data) {
console.log("data");
console.log(data);
console.log("before adding key:value");
console.log(formattedFormData);
formattedFormData.sqlTX = "New record created successfully!!!!!!"; //Adding !!!!! to be able to see the difference in the console log and get a return false for further error handling
console.log("after adding key:value");
console.log(formattedFormData);
if(data == formattedFormData){
console.log("postdata true");
return true;
}
else {
console.log("postdata false");
return false;
}
})
}
У меня было это в обычной функции, изменил его на async/await и теперь Promise с then(), так как я думал, что проблема связана с порядком выполнения. Прочитал о стеке вызовов и попробовал много отладки, чтобы выяснить, почему переменная получает ключ:значение сразу после ее инициализации, но не может получить ответ
Подробнее здесь: https://stackoverflow.com/questions/786 ... ould-guess