$ .post不返回数据

时间:2017-08-18 22:17:10

标签: php jquery .post

我在jquery很新,我想我还不完全明白我在做什么。

我尝试从我的数据库中检索数据而不重新加载我的页面:

$('.add-team-member').click(function(e) {
    e.preventDefault();
    $.post('?c=Data&action=getData&class=TeamMember', function(data) {
        console.log(data);
    })
    .fail(function() {
        console.log('fail');
    });
});

这是我的php文件:

class DataController extends Controller{
    public static function getData()
    {
        //retrieve objects from my database and encode them as json string
        var_dump(json_encode($_GET['class']::findAll()));
        return json_encode($_GET['class']::findAll());
    }
}

console.log(data)给出一个空字符串,并且不调用失败函数。我分别测试了我的php文件,它工作正常。对于一个不起眼的初学者有什么建议吗?谢谢!

编辑:看到你的一些评论让我觉得$ .post可能不是正确的方法。我想要实现的是从数据库中检索数据而不重新加载页面。我的目标是点击我的按钮会插入一个包含团队成员姓名的下拉列表。为此,我需要从我的数据库中获取TeamMembers的所有对象。 $ .post是实现这一目标的好方法吗?

编辑2 :好的,我明白了!我不知道我实际上需要回显我的数据以将它们传递给我的JS文件。我以为返回声明正在完成这项工作。就像我说的那样,我对此非常陌生^^谢谢你" Don&#tpanic"和" Taplar"您的帮助!你们很棒:-D

1 个答案:

答案 0 :(得分:0)

以更简单的方式做你想做的事:

首先尽可能减少您的代码。这是通过以下逻辑完成的。

//This is your HTML

//This is your form, if any.
<input id="value_01" type="text">
<input id="value_02" type="text">

//This is the link to call the JS function.
<a href="javascript:void(0);" class="add-team-member" id="add-team-member" onclick="addMember();">Add Member</a>

//This is the div to display the result. You can use your own.
<div id="fetched_result">

</div>

//This is your JS function to be called on click.
<script type="text/javascript">    
    function addMember() {
        //Fetch the values from your form, if any.
        var value_01 = $('#value_01').val();
        var value_02 = $('#value_02').val();

        $.ajax({
            type: "POST",
            url: "your-php-script.php", // Name of the php files
            data: {value_01 : value_01, value_02 : value_02},

            success: function(html)
            {   
                $("#fetched_result").html(html);
            }
        });
    }

以下是您的PHP脚本。

<?php
    if ($_POST) {
        $value_01 = $_POST['value_01'];
        $value_02 = $_POST['value_02'];

        //Process your Posted values with PHP

        //You need to echo your output. This will be populated in your result div as is.
        $result = "<strong>" . $fetched_value;

        echo $result;
    }
?>

希望这有效。