【问题标题】:Replace content of a div with an external php file in Laravel 3用 Laravel 3 中的外部 php 文件替换 div 的内容
【发布时间】:2013-04-19 01:55:30
【问题描述】:

我有一个无序列表的电影列表,该列表从烂番茄 API 显示在一个名为浏览的页面中(使用 Laravel 框架)。我正在尝试使用 AJAX 将内容从单独的文件加载到 div 中,当用户单击锚点时,我已将其设置为名为 movie 的路由。

在我的路线文件中,我有这个: Route::get('browse', array('as'=>'browse', 'uses'=>'browse@index')); Route::get('movie', array('as'=>'movie', 'uses'=>'browse@movie'));

浏览位于 /application/views/browse/index.blade.php 的视图

$movies = $search_results->movies;
echo '<div id="browse">';
echo '<ul class="movieResults">';
  foreach ($movies as $movie) {
    echo '<div class="movieCard">'; 
    echo '<li><img src="'. $movie->posters->detailed .'"</li>';
    echo '<li class="movieCardInfo"><a href="movie" class="movie">' . $movie->title . '</a></li>'; // HERE'S WHERE I HAVE THE PROBLEM
    echo '</div>';
  }
echo '</ul>';
echo '</div>';

位于 /application/views/browse/movie.blade.php 的电影视图。我现在有虚拟文本

echo '<div class="details">';

回声'

测试

'; 回声'';

浏览控制器

public $restful = true;
  public function get_index() 
  {
    return View::make('browse.index')
    ->with('title', 'Browse Movies');
  }
}

Javascript 文件 $(函数(){ $('.movi​​e').click(function() { $('.details').load(this.href); 返回假; }); });

The project can be found here

【问题讨论】:

    标签: php ajax laravel


    【解决方案1】:

    似乎您使用了错误的“this”-运算符。如果是 jQuery 脚本,应该是“$(this)”吗? (JavaScript 部分...)

    另外:你告诉它将“.load()”的结果添加到“.details”中,但我看不到你的 html 代码中有这样的字段?

    编辑

    在 /application/views/browse/index.blade.php 中更改以下内容:

    echo '<li class="movieCardInfo"><a href="movie" class="movie">' . $movie->title . '</a></li>';
    
    echo '<li class="movieCardInfo"><a href="movie" class="movie">' . $movie->title . '</a><div class="details"></div></li>';
    

    并从响应中删除“div.details”,因此响应只返回您想要的详细信息中的文本。

    然后,在 JavaScript 中:

    $(function() { 
        $('.movie').click(function() {
            $('.details').load($(this).href);
            return false;
        });
    });
    

    【讨论】:

    • 谢谢 2rsvold。我在我的 movie.blade.php 文件中有它。由于某种原因,代码没有显示出来。这里是: echo '
      ';回声'

      测试

      ';回声'
      ';
    • 是的,它适用于 jQuery。
    • Laravel 似乎没有识别出我的电影路线。我能够使文本用 html 替换 #browse div,如下所示: $(".movi​​e").click(function(){ $("#browse").html("test") });现在的诀窍是能够从烂番茄 API 中获取电影 ID,并将其与 php 一起传递到 javascript 函数中,以创建电影详细信息的视图。我相信我将不得不重组我的应用程序,以便可以全局调用 API。我的项目在这里:github.com/bryansattler/rhubarb
    猜你喜欢
    • 2017-08-10
    • 2011-07-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多