Я создаю кросс-платформенное приложение с использованием HTML, CSS и jQuery/JavaScript. Я использую запросы AJAX для получения данных из базы данных, а также отправку данных в базу данных. Я получил метод запроса AJAX «GET». Это мой метод «GET» (это в сценарии, который у меня есть на одной из моих HTML-страниц).Использование jQuery AJAX запросов - POST для php
метод GET
var outputHeader = $('#outputHeader');
var outputDes = $('#outputDes');
$.ajax({
url: '/currentEvent.php',
type: 'GET',
//data: 'json',
datatype: 'jsonp',
jsonp: 'jsoncallback',
timeout: 5000,
success: function (data) {
outputHeader.html("");
outputDes.html("");
for (var i in data) {
outputHeader.append("<h2>" + data[i].Event_Name + "</h2>" + "<p>" + data[i].Event_Date + "</p>" + "<p>" + data[i].Event_Time + "</p>" + "<p>" + data[i].Event_Venue + "</p>" + "<p>" + "Organised by  " + data[i].Event_Organiser + "</p>");
outputDes.append("<center>" + "<img src='" + data[i].Event_Image + "'/>" + "</center>" + "<p>" + data[i].Event_Description + "</p>")
}
},
error: function() {
outputHeader.html('<p>There was an error loading the data.</p>');
outputDes.html('<p>There was an error loading the data.</p>');
},
});
Это метод 'POST', что меня беспокоит. Это код, который я использую для метода POST (это в скрипте, который у меня есть на одной из моих HTML-страниц).
метод POST
var urlID = 1;
$.ajax({
url: '/currentEvent.php',
type: 'POST',
data: 'urlID=' + urlID,
datatype: 'text',
success: function (data) {
console.log(data);
},
});
Запрос AJAX является размещение на этой странице .php.
currentEvent.php страница
$eid = $_POST['urlID']];
$query = "SELECT * FROM Event WHERE Event_ID = {$eid}";
$getData = sqlsrv_query($conn, $query);
if ($getData === false) {
die(print_r(sqlsrv_errors(), true));
}
$records = array();
while($row = sqlsrv_fetch_array($getData, SQLSRV_FETCH_ASSOC))
{
$records[] = $row;
}
//echo json_encode($getData);
echo json_encode($records);
Когда я запускаю страницу HTML (я использую сервер), он не ставит "$ EID" как 1. У меня есть «POST 'перед «GET», потому что я должен отправить идентификатор на страницу php, чтобы он мог запустить запрос и вернуть данные обратно в приложение. Результатом является массив переменных в методе «GET», который не определен. Я бы опубликовал фотографию, но я не могу, потому что я новичок.
Я пробовал решения, рекомендованные другими пользователями, но это не сработало. Я немного новичок, когда дело доходит до разработки в jQuery и JavaScript, поэтому мне нужно понять это. Я что-то делаю неправильно?
вы звоните функцию GET после функции POST? Используете ли вы эти значения? Возможно, ваша проблема решается с помощью '$ .Deferred'. Но с этой информацией невозможно увидеть. Пожалуйста, опубликуйте все свои соответствующие коды, объявления функций и т. Д. –
Я вызываю функцию POST перед функцией GET. Где я должен использовать '$ .Deferred'? – LDav0382
Отложенный объект позволяет выполнить действие после завершения другого действия. Это самая распространенная проблема для новых пользователей, которая начинает развиваться с асинхронными вызовами. Подробнее см. В документации: https://api.jquery.com/category/deferred-object/ –