AJAX переменная данных не отправляется в сценарий PHP, но $ _POST установлен - PullRequest
0 голосов
/ 01 марта 2020

Это сводит меня с ума. Я пытаюсь опубликовать переменную в сценарии PHP, используя AJAX, но, хотя я могу проверить, установлен ли $ _POST, переменная остается неопределенной.

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

Вот очень урезанная версия кода -

JS

$(function(){
  $('#load_more_comments').click(function(){

    var newLimit = 40;
      $.ajax({
          url: "scripts/load_comments.php",
          data: { limit: newLimit },
          type: "post",
          success: function(result){

            // execute script

          },
          error: function(data, status, errorString)
        { 
            alert('error');
        }
      });
      return false;
  });
});

PHP

if (isset($_POST)) {

    echo "POST is set";

    if (isset($_POST['limit'])) {

        $newLimit = $_POST['limit'];
        echo $newLimit;

     }

}

ОБНОВЛЕНИЕ var_dump ($ _POST) возвращает array (0) {}, поэтому я знаю, что AJAX определенно не публикует никаких значений

Ответы [ 2 ]

0 голосов
/ 01 марта 2020

Попробуйте:

if (count($_POST)) {

Вместо

if (isset($_POST)) {
0 голосов
/ 01 марта 2020

Используя слегка измененную версию вышеупомянутого, я не могу воспроизвести вашу ошибку - похоже, она работает нормально.

<?php
    if( $_SERVER['REQUEST_METHOD']=='POST' ){
        ob_clean();
        if( isset( $_POST['limit'] ) ){
            echo $_POST['limit'];
        }
        exit();
    }
?>
<!DOCTYPE html>
<html lang='en'>
    <head>
        <meta charset='utf-8' />
        <title></title>

        <script src='//code.jquery.com/jquery-latest.js'></script>
        <script>
            $(function(){
              $('#load_more_comments').click(function(){

                var newLimit = 40;

                  $.ajax({
                      url: location.href,               //"scripts/load_comments.php",
                      data: { limit: newLimit },
                      type: "post",
                      success: function(result){
                        alert( result )
                      },
                      error: function(data, status, errorString){ 
                        alert('error');
                    }
                  });
                  return false;
              });
            });
        </script>
    </head>
    <body>
        <!-- content -->
        <div id='load_more_comments'>Load more...</div>
    </body>
</html>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...