微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

javascript-调用PHP类方法并使用jQuery和AJAX获取返回值

我正在为自己创建一个小项目.我不是一个非常有经验的程序员,所以我开始用PHP创建项目.很快就发现,通过单击HTML按钮来运行PHP函数和类方法并不是最简单的任务.

我已经设置了一些测试代码.首先,我创建了一个HTML表单,我想从中读取用户输入的值:

<form name="form" action="" method="POST">
    Title: <br> <input type="text" id="title"> <br>
    Description: <br> <input type="text" id="description"> <br>
    Priority: <br> <input type="number" id="priority"> <br> <br>
    <input type="button" id="ajaxTest" value="Send>
</form>

现在,单击ID为#ajaxTest的按钮时,我想在已创建的PHP文件调用方法之一.为此,我四处搜索,并得到以下jQuery:

<script type="text/javascript">
    $("#ajaxTest").click( function() {

        $t = $("#title").val();

        $.ajax({
            type: "POST",
            url: "http://www.example.com/task.PHP",
            data: "t="+t
        }).done(function(results) {
            $("#results").html(results).hide().fadeIn();
        })
    });

</script>

HTML中还有一个id为#results的div元素,用于显示结果数据.

现在,被调用的task.PHP如下所示(为简化可读性):

<?PHP
class Task {
    private $title;
    private $description;

    function SetTitle($t) {
        $this->title = $t;
    }

    function GetTitle() {
        return $this->title;
    }

    function SetDescription($d) {
        $this->description = $d;
    }

    function GetDescription() {
        return $this->description;
    }
}

我将如何通过jQuery / AJAX调用此类的不同成员函数获取其返回值以输入DOM?我认为我必须创建一个像TaskHandler这样的中间类来初始化对象,依此类推,但是我完全不知所措.几乎整天都在处理它,但是我找不到能使我找到可行解决方案的答案.非常感谢您的帮助!

编辑:我现在已经编辑了jQuery,它看起来如下所示:

<script type="text/javascript">

    $("#ajaxTest").click( function() {

        var t = $("#title").val();

        $.ajax({
            type: "POST",
            url: "http://www.example.com/taskHandler.PHP",
            data: {"t": t},
            success: function(response) {
                 $("#results").html(response);
            }
        });
    });

</script>

和taskHandler.PHP在下面

<?PHP
    require_once("task.PHP");

    $t = new Task();
    $t->SetTitle($_POST['t']);

    $output = $t->GetTitle();
    echo $output;

尽管如此,仍然什么都没有出现.我在做什么错了?

解决方法:

截至此问题的一长串评论列表,只有一件事可能会弄乱AJAX调用

<form name="form" action="" method="POST">
    Title: <br> <input type="text" id="title"> <br>
    Description: <br> <input type="text" id="description"> <br>
    Priority: <br> <input type="number" id="priority"> <br> <br>
    <input type="submit" id="ajaxTest" value="Submit">
</form>

提交按钮通常提交整个表单.提供空操作参数后,后操作将转到当前页面.这将立即重新加载,并中断可能发出但未完全发送的AJAX请求.

更改:

<form name="form" action="" method="POST">
    Title: <br> <input type="text" id="title"> <br>
    Description: <br> <input type="text" id="description"> <br>
    Priority: <br> <input type="number" id="priority"> <br> <br>
    <input type="button" id="ajaxTest" value="Send">
</form>

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐