【问题标题】:Passing values from ajax to php class functions将值从 ajax 传递到 php 类函数
【发布时间】:2016-05-31 03:06:33
【问题描述】:

问。有没有办法将值从 ajax 传递到具有函数的某个 php 类?假设在注册表单上验证用户是否存在。

这是一个简单的表单,它接受用户名并有一个 span 标签来显示消息。

<form action="" method="POST">
  <input type="text" name="username"><span class="check"></span>
  <input type="submit" name="signup">
</form>

对于 php 类:

<?php 
  class User {
    function isUserExist($username) {
      $query = mysql_query("SELECT username FROM users WHERE username='$username'");
      $result = mysql_num_rows($query);

      return ($result !== 0 ? true : false);
    }
  }
?>

它在与数据库建立连接的 php 类上初始化。 所以调用php页面会变成这样:$user->isUserExist($_POST['username']);.

那么是否可以将表单中的值传递给ajax并发送给php类函数?

【问题讨论】:

    标签: javascript php jquery html ajax


    【解决方案1】:

    从 HTML 到 ajax

    var username = $("input[name='username']").value;
    

    在 ajax 中获取并发送到 php(server)

      var xhttp = new XMLHttpRequest();
      xhttp.onreadystatechange = function() {
        if (xhttp.readyState == 4 && xhttp.status == 200) {
          //set your span to this -> xhttp.responseText;
        }
      };
      xhttp.open("POST", "your php script url", true);
      xhttp.send("username="+username);
    

    在服务器上接收(php)

    $mUsername = $_POST['username'];
    echo $mUsername;
    

    阅读本教程以获得更多帮助 Tutorial on PHP + AJAX

    【讨论】:

    • 你能给我一些解释吗?我对 ajax 还是很陌生。
    • 在 w3schools 上阅读它。非常简单明了的解释。我们在这里做的是:我们创建一个请求 XmlHttpRequest ,等待该更改状态的更改(readyState == 200 表示可以使用)。然后我们放置参数并使用 send 方法发送。
    • 我试过了。但是如何调用类内部的函数呢?我在类之前声明了$username = $_POST['username']; 以使其成为全局,但它说用户名未定义。
    • 函数 isUserExist($username) 在我的 User() 类中。一个类里面也有很多功能,我也有一个包含 2 个类的 php 文件。那么如何访问特定的类和特定的函数呢?
    • 我建议你看看这个 php 教程。一般来说,如果一个类有一个函数,那么从该类调用一个函数需要您首先创建该类并获取一个对象并在其上调用一个方法。但是请查看 w3schools 上的一些 php 教程来帮助您。
    【解决方案2】:
    Try this,
    
    <script type="text/javascript">
    $(document).ready(function(){
        $("input[name = 'signup']").click(function(e) {
            var username = $("input[name = 'username']").val();
            $.ajax ({
                url: "isUserExist_function_existing_file.php", 
                data: { username : username },
                success: function( result ) {
                    if(result)
                        alert("Name allready Exist");
                    else
                        alert("Name available");
                }
            });
        });
    });
    </script>
    

    【讨论】:

    • 文件名是user.php。如何访问User(); 类的函数isUserExist($username)?类里面还有很多函数,具体的函数怎么调用呢?
    • 你能访问像url这样的函数:“user/isUserExist”,或者试试 if(isset( $_POST['username'] )) { $user = new user(); $result = $user->isUserNameExist($_POST['username']);返回$结果; }
    • 我认为它不会起作用,因为需要 php 文件的路径。我需要在类中调用函数。
    • Ajax 应该有一些可以访问公共的端点 URL,例如:- facebook.com/chat/user_info/?dpr=1 你在使用任何框架吗?
    猜你喜欢
    • 2020-04-09
    • 2017-11-16
    • 2023-03-13
    • 1970-01-01
    • 2014-01-25
    • 1970-01-01
    • 1970-01-01
    • 2014-10-21
    • 2019-12-18
    相关资源
    最近更新 更多