Отправка js переменных на PHP, не запущенных ни одним методом - PullRequest
0 голосов
/ 20 января 2020

В моем коде JS я беру 3 входа на странице html и сохраняю их в локальном хранилище. Затем я хочу отправить эти переменные в php, чтобы сохранить их в моей базе данных. Как бы я ни старался, никакой учебник, использующий ajax, jquery et c, позволяет мне успешно публиковать и выводить переменные из javascript в моем коде php. Я не вижу причин, почему мой код ниже не отображает переменные, но это не так.

Полный код: https://codeshare.io/ayvK9e

Точные PHP элементы (просто пытаюсь отправить нормальные переменные прямо сейчас, так как они все равно не будут работать "

PHP:

foreach($_POST as $post_var){
echo($post_var);
}

JS:

const xhr = new XMLHttpRequest();
xhr.onload = function(){
    const serverResponse = document.getElementById("serverResponse");
    serverResponse.innerHTML = this.responseText
};

xhr.open("POST", "eDBase.php");
xhr.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
xhr.send("name=dominic&message=bumbaclaat");

Ответы [ 3 ]

1 голос
/ 20 января 2020

Если $ post не работает, попробуйте использовать input php $ data = json_decode (file_get_contents ('php: // input'), true);

0 голосов
/ 23 января 2020

При вызове моей функции со входами onclick = showFunction; Я ничего не передавал функции. Чтобы мои значения отображались в php, мне пришлось передать параметр в функцию onclick = function ('text or variable'); ИДК, как я это пропустил.

0 голосов
/ 20 января 2020

Попробуйте использовать FormData ()

 let form = new FormData();
 form.append('name', 'dominic');
 form.append('message', 'bumbaclaat');

 const xhr = new XMLHttpRequest();

 xhr.open("POST", "eDBase.php");
 xhr.onreadystatechange = function(){

    if(xhr.readyState === XMLHttpRequest.DONE && xhr.status === 200) {
       const serverResponse = document.getElementById("serverResponse");
       serverResponse.innerHTML = this.responseText;
     }
    else console.log('error')
 };

 xhr.send(form);

Закомментируйте setRequestHeader для его проверки.

И в PHP

if(isset($_POST['name'])){
  echo $_POST['name'];
  echo $_POST['message'];
}
else{
 echo 'There was a problem';
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...