Я новичок в PHP и AJAX. Любой совет приветствуется.
Моя конечная цель — сохранить массив JavaScript в базе данных MySQL по нажатию кнопки, но сначала я проверяю, могу ли я отправить массив JS в сценарий PHP. Мне нужна помощь, чтобы выяснить, как отобразить массив, отправленный с AJAX.
Мой HTML в submit-array.html
<button onclick="submit()">Submit Array</button>
<p id="demo"></p>
Мой JS в submit-array.html
function submit() {
var nameString = JSON.stringify(nameArray);
$.ajax({
url: "submit.php",
type: 'post',
data: nameString,
success: function() {
document.getElementById("demo").innerHTML = "Submitted Successfully";
},
error: function () {
document.getElementById("demo").innerHTML = "Error";
}
}); // end ajax call
}
submit.php
if(isset($_POST['nameString'])) {
$nameArray = json_decode($_POST[nameString]);
echo $nameArray;
}
else {
echo "nameString not received";
}
Когда я запускаю свой код и нажимаю кнопку «Отправить», на странице HTML отображается «Успешно отправлено», а на странице php «nameString not receive».
Почему $ nameArray не отображается после отправки nameString в PHP?
Вы не дали свой data
имя, так что PHP ничего не помещает в $_POST
,
У тебя должно быть:
data: {nameString: JSON.stringify(nameArray)}
^^^^^^^^^^--- $_POST key
^^^^etc... $_POST value
использование инструменты Google Chrome Deleoper (Ctrl-Shift-I) Вкладка «Сеть» или аналогичная опция с поджигатель в firefox.
В вышеупомянутых инструментах вы можете видеть каждый сервер и соответствующий ответ. Проверьте их, и вы найдете свои данные AJAX.