В идеале пользователи моего веб-сайта будут отправлять несколько сотен сообщений на сервер базы данных в течение часа (в основном это онлайн-эксперимент). Эксперимент реализован на js, поэтому я пытаюсь использовать объект XMLHttpRequest для публикации данных, которые собирает скрипт.
В чем я не уверен, так это в том, как использовать параметр POST. Я хочу установить около 8 различных пар ключ/значение для переменной $_POST, чтобы она могла быть доступна для страницы .php для обработки перед отправкой на сервер базы данных. Я не заинтересован в получении какой-либо информации с самого сервера, а только в ее отправке (поэтому, и я не уверен, что это правильный подход, я устанавливаю для условия readyState значение «1»/open).
Вот скрипт, над которым я сейчас работаю:
function postData(dataList) {
var xmlhttp = new XMLHttpRequest();
var processingUrl = "process_exercise_data.php";
var POSTBody = "";
POSTBody+="block_type="+encodeURIComponent(dataList[0]);
POSTBody+="&block_number="+encodeURIComponent(dataList[1]);
POSTBody+="&trial_type="+encodeURIComponent(dataList[2]);
POSTBody+="&trial_number="+encodeURIComponent(dataList[3]);
POSTBody+="&input_value="+encodeURIComponent(dataList[4]);
POSTBody+="&output_value="+encodeURIComponent(dataList[5]);
POSTBody+="&prediction_value="+encodeURIComponent(dataList[6]);
POSTBody+="&error="+encodeURIComponent(dataList[7]);
xmlhttp.open("POST",processingUrl,true);
if (xmlhttp.readyState==4) {
xmlhttp.send(POSTBody);
}
}
Основная цель — отправить пары ключ/значение на страницу .php с помощью POST, оставаясь при этом на текущей странице (простой запрос AJAX, если я не ошибаюсь). Любые комментарии или предложения очень ценятся!
Помните, все, что я пытаюсь сделать, это чтобы пользователь, когда он/она действует определенным образом при определенных условиях (вне области действия этой функции), вызывал эту функцию и отправлял эти данные на сервер. Текст ответа сервера не требуется.
РЕДАКТИРОВАТЬ:
Теперь мой вопрос таков: смогу ли я получить доступ к массиву $_POST на странице обработки php? Вот пример:
$block_type = $_POST['block.type'];