javascript - 从 <a> 标签内的按钮调用路由 laravel

标签 javascript php laravel

我是 Laravel 和 Javascript 新手。

我有一条看起来像这样的路线

Route::get('/problems/{problem}/edit', 'AdminController@editProblem');

我的页面看起来像 image

该页面的 HTML 代码是

@foreach($in_contest->problems as $problem)
    <div class="list-group">
        <a href="#" class="list-group-item">
            <i class="fa fa-file fa-lg"></i>
            {{ $problem->title }}
            <span class="pull-right">
                <button onclick="callRoute()" class="btn btn-xs btn-info button">Edit</button>
            </span>
        </a>
    </div>
@endforeach

我为这个 onclick 编写了 javascript 代码

<script type="text/javascript">
    function callRoute() {
        window.location = '{{ url('/problems/' . $problem->id . '/edit') }}';
    }
</script>

现在,每次我单击 P1、P2 或 P3 上的“编辑”按钮时,都会打开 P4 的编辑页面。相同的网址向所有人开放。 我希望当我单击 P1 上的编辑时,它会重定向到 P1 的 $problem-id 编辑页面。其他人也一样。

这个问题的解决办法是什么?

最佳答案

它调用 p4 的原因是,在运行 foreach 循环之后,您基本上是将问题 ID 的最后一次迭代写入 JavaScript。

您可以通过将 View 代码更改为以下内容来避免将 Blade 语法一起添加到您的 JavaScript 中,以便它将当前问题 ID 传递给您的 JavaScript 函数

@foreach($in_contest->problems as $problem)
    <div class="list-group">
        <a href="#" class="list-group-item">
            <i class="fa fa-file fa-lg"></i>
            {{ $problem->title }}
            <span class="pull-right">
                <button onclick="callRoute({{ $problem->id }})" class="btn btn-xs btn-info button">Edit</button>
            </span>
        </a>
    </div>
@endforeach

以及您的 javascript 函数如下

<script type="text/javascript">
    function callRoute(problemID) {
        window.location = '/problems/' + problemID + '/edit';
    }
</script>

关于javascript - 从 <a> 标签内的按钮调用路由 laravel,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38799293/

相关文章:

javascript - 在react js中切换组件

php - 从 mysql 数据库检索服务器数据

php - 如何使用 $_POST 保存 contentEditable ="true"的 Div?

php - 将数据库中的值添加到预填写表单中

php - 未捕获的反射异常 : Class log does not exist Laravel 5. 2

javascript - 如何从 Node.js 的 node-googlemaps 获取路线

javascript - 自定义视差滚动问题

javascript - 如何让 Phantomjs 在 Windows 上执行一个 js 文件

php - 如何在安装了 php 的 IIS 上检查单个站点的传出 HTTP 请求?

php - Laravel 8 - 在线支付 przelewy24 网关实现