-1

jQueryページ A と呼ぶメイン ページがあります。アイテムがクリックされたときに$.post を実行するナビゲーション メニューがページ A にあります。その後、終了すると、いくつかの div が非表示になり、1 つが表示されます。

それが示すdivにはPHP、コンテンツを膨らませるファイルがあります。これは $.post の送信先と同じPHPファイルで、このファイルはページ A に含まれています。

そのため、ページが nav および非表示の 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 に答える