jQuery $ .ajax сообщение в файл PHP не работает

Так что это связано с вчерашней проблемой, которая быстро вышла из-под контроля, поскольку ошибки были необычными. Эта проблема все еще существует, но вопрос был отложен,Воти меня попросили реформировать новый вопрос, который теперь относится к текущей проблеме. Итак, поехали.

Проблема носит принципиальный характер. Если вы помогали вчера, я переключился с $ .post на пост $ .ajax, чтобы передать переменнуюPHP файл. Однако мойPHP Файл, похоже, никогда не получит эту переменную, заявив, что индекс «неопределен».

Теперь это обычно означает, что переменная не содержит значения, имеет неправильное имя или была отправлена неправильно. Ну, после целого дня возни с этим (убей меня) я до сих пор не вижу причин, по которым мойPHP Файл не должен получать эти данные. Поскольку я довольно новичок в этом, я действительно надеюсь, что кто-то может заметить очевидную ошибку или рекомендовать другое возможное решение.

Вот код

JQuery

$('#projects').click(function (e) {
alert(aid); 
$.ajax({    
    url:'core/functions/projects.php',
    type: 'post',
    data: {'aid' : aid},
    done: function(data) {
    // this is for testing
    }
    }).fail (function() {
        alert('error');
    }).always(function(data) {
        alert(data);                                        
        $('#home_div').hide();          
        $('#pcd').fadeIn(1000);
        $('#project_table').html(data); 
    });         
});

PHP

<?php

include "$_SERVER[DOCUMENT_ROOT]/TrakFlex/core/init.php";

if(isset($_POST['aid'])) {  
    $aid = $_POST['aid'];               
    try {
        $query_projectInfo = $db->prepare("
            SELECT  projects.account_id,
                    projects.project_name,                  
                    projects.pm,    
                    //..irrelevant code      
            FROM projects
            WHERE account_id = ?                        
        "); 

        $query_projectInfo->bindValue(1, $aid, PDO::PARAM_STR);
        $query_projectInfo->execute();
        $count = $query_projectInfo->rowCount();

        if ($count > 0) {
            echo "<table class='contentTable'>";
            echo "<th class='content_th'>" . "Job #" . "</th>";
            echo "<th class='content_th'>" . "Project Name" . "</th>";
            //..irrelevant code          
            while ($row = $query_projectInfo->fetch(PDO::FETCH_ASSOC)) {                
                echo "<tr>";
                echo "<td class='content_td'>" . "<a href='#'>" . $row['account_id'] . "</a>" . "</td>";
                echo "<td class='content_td'>" . $row['project_name'] . "</td>"; 
                //..irrelevant code
                echo "</tr>";
            }
            echo "</table>";            
        }       
    } catch(PDOException $e) {
        die($e->getMessage());
    }   
} else {
    echo 'could not load projects table';
}

?>   

Когда я запускаю этот код, нажимая «#projects», я получаю 2 предупреждения. В этом первом предупреждении указано «6», что является значением переменной «помощь» и ожидается. Второе предупреждение пусто.

Теперь вот где я запутался. Если сообщение отправляется со значением 6. Не установлен ли $ _POST ['aid']? Также, если это правда, не должен ли мой код выполнятьif&nbsp;часть моего условного заявленияскорее&nbsp;чем мойelse?. В любом случае это кажется мне странным. Я не должен получитьчто-то&nbsp;от моегоPHP&nbsp;файл?

Так что в Firebug мы верим, верно? Если я открою Firebug и пройду вот так
Firebug -> POST projects.php -> XHR -> POST(tab) ->
Я вижу 6 в окне «Параметр» и «6» в окне «Источник». Затем, если я нажму на вкладки «Ответ» и «HTML», они оба не будут иметь значения.

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

РЕДАКТИРОВАТЬ

Если я изменю свой php-файл, чтобы он выглядел следующим образом

<?php

if(isset($_POST['aid'])) {  
    $aid = $_POST['aid'];
    echo $aid;
} else {
    echo 'fail';    
}

Ответ теперь «6»! Ура! Мы сделали прорыв! Теперь, почему он не загружает мою таблицу, которая является результатом моего запроса?

Примечание&nbsp;Это должно было быть отмечено изначально, если я заберу

if(isset($_POST['aid'])){
//all my code
} else {
    //response
}

и просто жестко закодировать переменную $ aid, как это

$aid = '6';

Затем запуститеPHP&nbsp;Если файл будет отправлен, запрос будет успешно выполнен, и страница загружает таблицу, создаваемую динамически.

Также в ответ на один из ответов просит меня использовать

$('#projects').click(function (e) {
    alert(aid); 
    $.ajax({    
        url:'core/functions/projects.php',
        type: 'post',
        data: aid,
        success: function(data) {
        // this is for testing
        }
        }).error (function() {
            alert('error');
        }).complete (function(data) {
            alert(data);                                        
            $('#home_div').hide();              
            $('#pcd').fadeIn(1000);
            $('#project_table').html(data); 
        });     
});

Я использовал это, но я использую jQuery v1.10.2 и в соответствии сэто&nbsp;эти методы являются или будут устаревшими. В любом случае, результат был нулевым.

В любом случае вопрос сейчас. Почему, если я использовал простую версию, я получил echo'd обратно мою переменную $ aid '6'. Однако, когда я пытаюсь выполнить свой запрос с ним, я получаюничего, Также, пожалуйста, постарайтесь запомнить, если я жестко закодирую 6, таблица создает.