繁体   English   中英

如何使用jquery ajax调用PHP函数

[英]how to call a PHP function using 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请帮帮我

也可以使用你的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";
        }
    ?>

您可以使用:

$('#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;
  }
?>

然后你可以使用:

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中你的函数将调用自动...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM