使用AJAX从JavaScript调用PHP函数

时间:2014-06-13 18:44:43

标签: javascript php jquery ajax

我试图使用AJAX调用PHP函数。我已经检查了堆栈溢出的解决方案(它以大量显示),但它似乎对我不起作用。请注意,PHP代码和JavaScript / jQuery / AJAX代码都在同一个文件中。

下面是我编写的尝试获得所需结果的代码,包含的两个PHP文件与我需要调用的任何PHP函数无关,所以我没有发布这些。

(注意:调用ExecuteAll()函数,但在AJAX代码中/之后没有任何反应)

<input type="button" value="Show all client data" id="all">

<?
include('inc/php/stringgenerator.php');
include('inc/php/client.php');

$generator = new StringGenerator;

$clients = array();

for($i = 0; $i < 250; $i++){
    $clients[$i] = new Client;
    $clients[$i]->SetId($i);
    $clients[$i]->SetAddress($generator->GetGeneratedString(rand(12, 24)));
    $clients[$i]->SetNotes("Notes for client " . $i);

    $scores = array();
    for($j = 0; $j < 25; $j++)$scores[$j] = rand(0, 10);
    $clients[$i]->SetScores($scores);
}    

echo "Clients generated";
?>
<?
switch($_POST["functionname"]){
    case 'DisplayAllClientData':
        DisplayAllClientData();
        break;
};

function DisplayAllClientData(){
    for($i = 0; $i < count($clients); $i++){
        $clients[$i]->PrintClientData();
        echo "<hr>";
    }
}  
?>

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>

<script type="text/javascript" language="javascript">
$(document).ready(function(){
    $("#all").click(function(){ ExecuteAll(); });
}); 

function ExecuteAll(){
    $.ajax({
        type: "POST",
        url: 'index.php',
        data: {functionname: 'DisplayAllClientData'},
        succes:function(){
            alert("Success!");
        }
    });
}
</script>

1 个答案:

答案 0 :(得分:1)

试试这个:

在JS中:

function ExecuteAll(){
    $.ajax({
        type: "POST",
        url: 'index.php',
        data: {command: 'all_client_data'},
        succes:function(){
            alert("Success!");
        }
    });
}

然后在PHP中声明DisplayAllClientData()函数后执行以下操作:

if ($_POST['command'] == 'all_client_data') [
    DisplayAllClientData();
}

这些方面应该有所作为。