如何使用jquery ajax调用PHP函数

时间:2014-04-27 22:32:58

标签: javascript php jquery ajax

我想在php中使用ajax创建登录系统,这是我的代码

jQuery(document).ready(function ($) {


// login function
 $('form#login').on('submit', function(){ 
    var url = document.getElementById('hidden').innerHTML;
    var login_result = $('.login_result');
    var input_data = $('form#login').serialize() + "&action=login";
    $.ajax({
        type: "POST",
        data: input_data,
        url: url + 'lib/my_func.php',
        success: function(responseText){ // Get the result and asign to each cases
            if(responseText == 0){
                login_result.html('<span class="error">Username or Password Incorrect!</span>');
            }
            else if(responseText == 1){
                window.location = 'userpage.php';
            }
            else{
                alert('Problem with sql query');
            }
        }
    });
    return false;
 });




});

这是我的php函数

function login()
{
    if(isset($_POST['action']) && $_POST['action'] == 'login')
    {
        $user   =   $_POST['login'];
        $pas    =   $_POST['password'];

        echo $user;

    }
}

但在这个php登录功能中没有输出。如果我删除函数echo $ user为true,如何在登录函数中回显$ user 请帮帮我

3 个答案:

答案 0 :(得分:1)

使用你的js代码,但修改你的my_func.php

<?php
   function login() {
     if(isset($_POST['action']) && $_POST['action'] == 'login')
        {
            $user   =   $_POST['login'];
            $pas    =   $_POST['password'];

            echo $user;

        }
    }
    login();    
?>

创作者评论后UPD: 您可以通过添加特殊参数来指定在ajax请求中调用哪个函数(例如,现在使用&action=login)。 my_func.php的代码如下所示:

<?php
       function login() {
         if(isset($_POST['action']) && $_POST['action'] == 'login')
            {
                $user   =   $_POST['login'];
                $pas    =   $_POST['password'];

                echo $user;

            }
        }
        $action = $_GET['action'];
        if ($action == 'login') {
           login();
        } else {
           echo "No action {$action} found";
        }
    ?>

答案 1 :(得分:1)

你可以使用:

$('#submit').click(function()
{
    $.ajax({
        type:'POST',
        url: 'your_url_of_php_file',
        data: "name="+$('#field_id').val()+"&email="+$('#field_id').val()+"",
        success:function(result)
        {
           alert(result)
        }
    })
}

并在php文件中

<?php
  if(isset($_POST['name']))
  {
      $name=$_POST['name'];
      $email=$_POST['email'];
      echo $email." ".$name;
  }
?>

答案 2 :(得分:0)

然后你可以使用:

var input_data = $('form#login').serialize();
$.ajax({
  type:'POST',
  url:'function.php',
  data:"function="+$('#function_name').val()+"&value="+input_data;
  success:function(result)
  {
     alert(result);
  }
})

在php中:

<?php
  if(isset($_POST['function']))
   {
     $_POST['function']($_POST['value']); 
   }

  function abc($data)
  {
     //some code
  }

?>

你只需要发送函数名称及其值然后在php中你的函数将调用auto ...