-1

我有一个主页,我们将其称为页面 A。我在页面 A 上有一个导航菜单,该菜单在jQuery单击项目时执行 $.post。然后当它完成时,它会隐藏一些 div 并显示一个。

那么它显示的 div 有一个PHP膨胀内容的文件。这是PHP将 $.post 发送到的同一个文件,并且该文件包含在页面 A 中。

因此,当页面加载导航和隐藏 div 时,它还会加载没有$.post 数据的PHP文件。

这是一些代码,我将进一步解释

jQuery

$('#projects').click(function (e) {
    $.trim(account_id); 
    $.post('core/functions/projects.php', { 
        account_id: account_id                    
    })
    .done(function(data) {      
        $('#scd').hide();
        $('#icd').hide();       
        $('#pcd').fadeIn(1000);     
    })
    .fail(function(jqXHR, status, error) {
        alert(error);
    }); 

});

PHP

<?php

if(empty($_POST) === false) {

    $account_id = $_POST['account_id'];

    try {
        $query_projectInfo = $db->prepare("
            SELECT  projects.account_id,
                    projects.project_name,                  
                    .... //more code, not relevant 
            FROM projects
            WHERE account_id = ?                        
        "); 

        $query_projectInfo->bindValue(1, $account_id, 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>";
            ... //more code, not relevant            
            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>";
                .... //more code, not relevant                  
            }
            echo "</table>";            
        }       
    } catch(PDOException $e) {
        die($e->getMessage());
    }
} else {
    echo 'could not load projects table';
}
?> 

现在,当我单击导航菜单上的#project 时,我所看到的只是else“无法加载项目表”的语句。我相信这是因为在PHP单击导航项之前加载了文件。似乎当我单击该项目并发送帖子时,就像PHP页面上说“我已经加载了好友,我不会再这样做了”。

所以我的问题是,如何让PHP文件等待加载?我以为那个if else条件可以做到,显然我错了。

PS如果我给 $account_id 变量一个值而不是等待发布 div 与表格和所有信息一起膨胀。所以PHP文件是可操作的。它只是不等待那个 $.post

4

1 回答 1

2

这个检查永远不会触发。empty($_POST) === false

如果您只是想检查是否$_POST有数据,只需使用isset($_POST)

于 2013-07-27T19:46:36.660 回答