如何在Laravel框架中不使用表格和JavaScript的情况下更新表值

时间:2018-12-02 15:09:39

标签: javascript php mysql laravel

我正在做一个我的项目,我想从数据库中获取一个名为“ Clients”的表并显示其数据。很好,这是一件容易的事。现在,我想更新表中的一些数据。考虑到我正在使用Laravel框架,我试图找出执行此操作的最佳方法。

我有以下for循环,用于在中显示数据。

for ($i=0; $i<$clientNumber; $i++) { ?>
    <tr>
    <td>
        <form method="post" action="{{URL::to('/')}}">
            {{csrf_field()}} <!-- Used for the token --> 
            <button type="submit" value="<?php echo $i; ?>" class="editButton" > <i class="fa fa-edit"></i> </button>
        </form>
    </td>
    <td> <?php echo $data[$i]->clientId; ?> </td>
    <td> <?php echo $data[$i]->clientFirstname; ?> </td>
    <td> <?php echo $data[$i]->clientSurname; ?> </td>
    <td> <?php echo $data[$i]->clientEmail; ?> </td>
    <td> <?php echo $data[$i]->clientMobile; ?> </td>
    <td> <?php echo $data[$i]->clientPhone; ?> </td>
    <td> <?php echo $data[$i]->clientAdrress; ?> </td>
    <td> <?php echo $data[$i]->companyName; ?> </td>
    <td> <?php echo $data[$i]->companyType; ?> </td>
    <td> <?php echo $data[$i]->services; ?> </td>
    <td> <?php echo $data[$i]->websiteURL; ?> </td>
    <td> <?php echo $data[$i]->renewDate; ?> </td>
    <td> <?php echo $data[$i]->totalPrice; ?> </td>
    <td> <?php echo $data[$i]->deposit; ?> </td>
    <td> <?php echo $data[$i]->balance; ?> </td>
    <td> <?php echo $data[$i]->serverPrice; ?> </td>
    <td> <?php echo $data[$i]->comments; ?> </td>
    <input type="hidden" name="rowId" value="<?php echo $i; ?>">
    </tr> 
<?php
}

如您所见,我已经添加了以下代码

<button type="submit" value="<?php echo $i; ?>" class="editButton" > <i class="fa fa-edit"></i> </button>

这样我可以在每一行上都有一个按钮,单击时会提示我进入编辑区域。

我想解决此问题而不加载其他页面。例如,我已经开发了一个带有<form>的版本,单击该按钮后,我将被重定向到新页面。

我很挣扎,因为我不知道如何在Laravel中形成依赖于行号的SQL查询(在按下按钮或类似按钮后才能知道)。例如SELECT * FROM table WHERE id==XXX

问题是否足够清楚?

感谢您的宝贵时间, -瓦西里斯

1 个答案:

答案 0 :(得分:1)

  

我想更新表中的某些数据...而无需加载其他页面...以在Laravel中形成依赖于行号的SQL查询...

我强烈建议您浏览Laravels blade documentation

* 已编辑以使用路由模型绑定

您的控制器

use App/Client;

public function update(Request $request, Client $client)
{
    $client->update($request->all());

    // Then, return back to the view 
    return back()->with('success', 'Field updated successfully!');
}

刀片

<!-- optional -->
@if (session('success'))
    <div class="alert alert-success" role="alert">
        {{ session('success') }}
     </div>
@endif

<form method="POST" action="/your/route/{{ $i }}">
    @csrf 
    @method('PUT')
    <!-- form inputs -->

    <button type="submit" class="editButton">Edit</button>
</form>

您的网络路线文件:

Route::put('/your/route/{client}', 'YourController@update')->name('update-client');