xmlHttpRequest, отправленный сценарию PHP, не возвращает ассоциативный массив - PullRequest
0 голосов
/ 03 мая 2020

Я тестирую следующий скрипт, который отправляет объект javascript с использованием xmlHttpRequest в скрипт php. Проблема в том, что массив, сгенерированный при использовании xmlHttpRequest, при использовании формы не совпадает.

Например: данные из формы отправлены

<code><form action="form-b.php" method="post">
<input type="text" name="Newton" value="Gravity"><br>
<input type="text" name="Albert" value="Energy"><br>
<input type="text" name="Edison" value="Bulb"><br>
<input type="text" name="Tesla" value="AC"><br>
<input type="text" name="Bill" value="Microsoft"><br>
<input type="submit">
</form>

form-b.php
echo '<pre>';
    print_r($_POST);
echo '
'; Массив ([Ньютон] => Гравитация [Альберт] => Энергия [Эдисон] => Лампа [Тесла] => AC [Билл] => Microsoft)

Использование xmlHttpRequest

<code>var button = $("button")
button.on("click",function() {

    var arr = {
    "Newton": "Gravity",
    "Albert": "Energy",
    "Edison": "Bulb",
    "Tesla": "AC",
    "Bill" : "Microsoft"
};

myData = JSON.stringify(arr);

console.log(myData);

var xhr = new XMLHttpRequest();

xhr.open('POST','form-b.php', true);

xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");

xhr.onreadystatechange = function() {
    if(ajaxReturn(xhr) == true) {
        alert(xhr.responseText);
    }
}

function ajaxReturn(x){
    if(x.readyState == 4 && x.status == 200){
        return true;
    }
}

xhr.send(myData)

});

form-b.php
echo '<pre>';
    print_r($_POST);
echo '
«; Array ([{"Newton": "Gravity", "Albert": "Energy", "Edison": "Bulb", "Tesla": "A C"}] =>)

Массив, полученный при использовании xmlHttpRequest, сильно отличается от того, который будет получен при отправке формы.

Где я иду не так и как я могу это исправить?

Я пытаюсь получить массив из $ _POST вот так

Array
(
    [Newton] => Gravity
    [Albert] => Energy
    [Edison] => Bulb
    [Tesla] => AC
    [Bill] => Microsoft
)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...