使用jQuery

时间:2017-07-04 08:26:38

标签: php jquery ajax click

我有一个包含一些函数的php文件(treatment.php),例如:

public function connexion(){ 
    $user = 'invité';  
    if($_POST){
        if(isset($_POST['user'])) {
            session_start();
            $user = $_POST['user'];
        }
    }
    echo $user;
}

我想通过Ajax使用以下代码调用此函数,但它不起作用:

$(document).on("click", "#valider-btn", function(){
  $.ajax({
    url : 'treatment.php/Connexion',
    type : 'POST',
    data : 'user=' + $("#name").val(),
    dataType : 'html',
    success : function(donnees) {
    $("#name").val("");
    $("#formulaire").hide();
    $("#decompte").html(donnees);
    }
  });
});

有人可以帮忙吗?感谢

3 个答案:

答案 0 :(得分:1)

Ajax不能那样工作。当您致电treatment.php时,您必须重新路由给定数据中传递的特定属性的操作。像这样(我假设你的treatment.php不是一个类):

treatment.php

<?php

if($_POST && isset($_POST['action'])
{
    //sanitize action
    switch($_POST['action'])
    {
        case 'connexion':
            connexion($_POST['data']);
            break;
        case 'anotheraction':
        //do something
        [...]
    }
}

function connexion($data = null){ 
    $user = 'invité';  
    if($data){
        if(isset($data['user'])) {
            session_start();
            $user = $data['user'];
        }
    }
    echo $user;
}

yourjs.js

$(document).on("click", "#valider-btn", function(){
    $.ajax({
        url : 'treatment.php',
        type : 'POST',
        data : {user: $("#name").val(), action: "connexion"},
        dataType : 'html',
        success : function(donnees){
            $("#name").val("");
            $("#formulaire").hide();
            $("#decompte").html(donnees);
        }
    });
});

答案 1 :(得分:-1)

你用JS误解了PHP。

您可以通过执行代码调用.php文件,但不能自行调用函数。 最好用treatment2.php分隔PHP:

<?php
include_once "treatment.php";
connexion();

然后调用此文件。

函数本身就是声明 - 当你在PHP文件中使用它时,你可以从外面执行它。

答案 2 :(得分:-1)

首先需要jquery库。

  

在你的ajax代码中调用.php文件扩展名

$(document).on("click", "#valider-btn", function(){
        $.ajax({
            url : 'treatment.php/Connexion',
            type : 'POST',
            data : 'user=' + $("#name").val(),
            dataType : 'html',
            success : function(donnees){
                $("#name").val("");
                $("#formulaire").hide();
                $("#decompte").html(donnees);
            }
        });
    });