основной вопрос относительно $ _GET с AJAX и PHP - PullRequest
0 голосов
/ 22 декабря 2018

Просто поиграюсь с ajax и php и у меня простой вопрос.Это следующие соответствующие файлы:

file.php

<?php 
$bla = $_GET['pid'];
echo $bla;
?>

HTML

HTML-код примера сайта URL: somesite.com/blabla.php?pid=3

(Он содержит одну кнопку, которая при нажатии на нее должна получить значение $ _GET из URL, который3)

<!DOCTYPE html>
<html>
<head>
<title>Some Page</title>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

</head>
<body>

<button class="fa fa-icon" onclick="someFunction()"></button>

</body>
</html>

JS:

<script>
function someFunction(){
    $.ajax({
    method: 'POST', //I've tried 'GET' here too. doesnt make a difference
    url: "file.php", 
    success: function(result)
{
alert(result);}
});
}
</script>

Как отмечается в комментариях ниже: Я также попробовал следующее

<script>
function someFunction(){
    $.ajax({
    method: 'POST', //I've tried 'GET' here too. doesnt make a difference
    url: "file.php", 
    data: {pid: 3}, // added this line
    success: function(result)
{
alert(result);}
});
}
</script>

Предупреждение пустое, на нем нет 3, если в php-файле есть echo $ bla, равное $ _GET ['pid'], а pid в URL = 3.

Может кто-топожалуйста, объясните, почему это так?Я не думаю, что понимаю, что происходит за кулисами вышеупомянутых кодов, чтобы выяснить, почему.

Обратите внимание, что я не пытаюсь решить конкретную проблему или что-то еще, просто пытаюсь понять, почему $ _GET не являетсяработая в этом очень конкретном случае.

1 Ответ

0 голосов
/ 22 декабря 2018

Вы не отправляете никаких данных в запросе AJAX, поэтому PHP ничего не может прочитать и отправить обратно.Чтобы исправить это, включите в запрос свойство data, которое содержит ключ pid и требуемое значение, например:

function someFunction(){
  $.ajax({
    method: 'GET',
    url: "file.php", 
    data: {
      pid: 3
    },
    success: function(result) {
      console.log(result);
    }
  });
}

Обратите внимание, что здесь я использую method: 'GET', что важнопоскольку вы используете $_GET в своем PHP, запрос POST не будет работать.Также обратите внимание, что я использую console.log() для отладки значения.alert() не должен использоваться для отладки, поскольку он приводит к типам данных.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...