Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/418.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在Laravel 4中将模型函数从控制器导出到视图_Javascript_Php_Ajax_Laravel_Laravel 4 - Fatal编程技术网

Javascript 如何在Laravel 4中将模型函数从控制器导出到视图

Javascript 如何在Laravel 4中将模型函数从控制器导出到视图,javascript,php,ajax,laravel,laravel-4,Javascript,Php,Ajax,Laravel,Laravel 4,我试图显示数据库中依赖于用户输入的一些数据。我使用ajax请求获取数据,将其发送回控制器中的函数,然后将其导出回视图。我想收集这些数据并显示它,而不必转到另一个视图(我只是隐藏以前的表单并取消隐藏新表单) 以下是相关代码: Javascript: $('#submit_one').on('click', function(event) { event.preventDefault(); if(! $(this).hasClass('faded')) {

我试图显示数据库中依赖于用户输入的一些数据。我使用ajax请求获取数据,将其发送回控制器中的函数,然后将其导出回视图。我想收集这些数据并显示它,而不必转到另一个视图(我只是隐藏以前的表单并取消隐藏新表单)

以下是相关代码:

Javascript:

$('#submit_one').on('click', function(event) {
        event.preventDefault();

        if(! $(this).hasClass('faded')) {


        var fbid = $("input[name='like']:checked").val();
//variable to be collected is fbid


        request = $.ajax({ 
        url: "http://crowdtest.dev:8888/fans/pick_favorite", 
        type: "post", success:function(data){}, 
        data: {'fbid': fbid} ,beforeSend: function(data){
            console.log(data);
        } 
        });

        to_welcome_two();
        }

    });

function to_welcome_two()
{
    $('#welcome_one').addClass('hidden');
    $('#welcome_two').removeClass('hidden');
}
控制器功能:

public function pick_favorite() {

            $fbid=Input::get('fbid');

            return Artist::specific_artist($fbid);

        }
公共函数getWelcome(){

模型函数:

public static function specific_artist($fbid) {
        $specific_artist = DB::table('artists')
                        ->where('artists.fbid', '=', $fbid)
                        ->get();

        return $specific_artist;

    }
视图位于“欢迎”页面上。我的问题是如何在视图中显示模型数据,并确保它从fbid输入打印出正确的数据

我试过这样的方法:

@foreach($pick as $p)
    <span class="artist_text">{{$p->stage_name}}</span>
    <br>
    <span class="artist_city">{{$p->city}}</span>
@endforeach
@foreach($p)
{{$p->stage_name}

{{$p->city} @endforeach

但这并没有打印任何内容。有什么想法吗?

我在这里看到很多问题

服务器端:
公共函数pick_favorite()
…它做什么?它只返回一些数据

公共函数getWelcome(){
中,您编写了,
FansController::pick_favorite()
。假设两者都是相同的方法,您正在访问一个静态方法,而该方法是非静态的。您会因此收到一个错误,但您没有看到它,因为您没有定义
fail()

我不明白声明一个方法的意义何在,这个方法除了可以直接执行的模型调用之外什么都不做

e、 假设我有一个
fooModel

public function index(){}
在控制器中,我可以写

public function bar()
{
  $model = new fooModel;
  return View::make(array('param1'=>$model->index()));

}
或者如果我在fooModel中将
index()
方法声明为静态,那么我可以编写

public function bar()
{
    return View::make(array('param1'=>fooModel::index()));
}
客户端: 现在在javascript中

$('#submit_one').on('click', function(event) {
    event.preventDefault();

    if(! $(this).hasClass('faded')) {


    var fbid = $("input[name='like']:checked").val();
//variable to be collected is fbid


    request = $.ajax({ 
    url: "http://crowdtest.dev:8888/fans/pick_favorite", 
    type: "post", success:function(data){}, 
    data: {'fbid': fbid} ,beforeSend: function(data){
        console.log(data);
    } 
    });

    to_welcome_two();
    }

});

function to_welcome_two()
{
    $('#welcome_one').addClass('hidden');
    $('#welcome_two').removeClass('hidden');
}
为什么要打印任何数据?您没有要求脚本打印任何内容。代码中的
.done
.success
参数在哪里

如果你看看你的控制台,你会发现很多php错误,我几乎可以肯定

作为建议,您需要学习一些基础知识,例如jqueryajax调用

a basic ajax call can be 

    var request = $.ajax({
url: "script.php",
type: "POST",
data: { id : menuId },
dataType: "html"
});
request.done(function( msg ) {
$( "#log" ).html( msg );
});
request.fail(function( jqXHR, textStatus ) {
alert( "Request failed: " + textStatus );
});
在代码中实现它,然后查看它抛出了什么错误

结论: 第一个是静态错误(假设您的其他代码正常)。如果您想将其称为静态,请将其声明为静态。但是控制器中的静态函数?我看不出它有任何用途


然后开始调试。您的问题是客户端和服务器端。逐个处理。

您可以看到我的ajax代码中有success参数。它可以很好地导出fbid。但我想要的是能够获取与此fbid相关的其他数据。我没有收到任何错误。我看不到
success
函数在哪里。键入:“post”,success:function(data){},data:{'fbid':fbid},beforeSend:function(data){console.log(data);}您能回答我的问题吗,是否有方法获取这个fbid变量,并将其应用于模型函数以获取其他数据(不更改视图)?我错过了
success:function(data){
。这里的问题是缩进。第二,你没有对数据做任何处理。至于你上面的问题,我没有理解。你能重新措辞吗?
a basic ajax call can be 

    var request = $.ajax({
url: "script.php",
type: "POST",
data: { id : menuId },
dataType: "html"
});
request.done(function( msg ) {
$( "#log" ).html( msg );
});
request.fail(function( jqXHR, textStatus ) {
alert( "Request failed: " + textStatus );
});