如何使用ajax将数据属性发送到laravel控制器(存储在数据库中)?

时间:2019-09-13 07:22:23

标签: php jquery ajax laravel

我是Laravel的初学者,我已经创建了此代码,用于将图像的订单号更改存储到数据库中的实践。但是我将值存储在属性中。这里的情况是使用“可排序”功能jQuery设置图像的订单号。

我曾尝试在Internet上进行一些搜索,但是大多数情况下,他们使用<script> $('.sort-list').sortable({ axis: 'y', opacity: 0.7, cursor: 'pointer', update: function (event, ui) { $(this).children().each(function (index) { if ($(this).attr('data-position') != (index+1)) { $(this).attr('data-position', (index+1)).addClass('updated'); } }); saveNewPositions(); } }); function saveNewPositions() { var positions = []; $('.updated').each(function () { positions.push([$(this).attr('data-index'), $(this).attr('data-position')]); $(this).removeClass('updated'); }); $.ajax({ url: "{{ route('/admin/setCarouselOrder') }}", method: 'GET', dataType: 'text', data: { update: 1, positions: positions }, success: function (response) { console.log(response); } }); } 来存储新订单号的值。我很好奇,是否有可能从属性中获取数据。

这是我的代码:

HTML:

if (isset($_POST['update'])) {
        foreach($_POST['positions'] as $position) {
           $index = $position[0];
           $newPosition = $position[1];

           $conn->query("UPDATE country SET position = '$newPosition' WHERE id='$index'");
        }

        exit('success');
    }

所以我使用data-index和data-position属性存储到数据库中。

这是我的jQuery和Ajax:

public function setCarouselOrder(Request $r) {
   $result = Carousel::find($r->id);

   $newNumber = $r->data-position;
   foreach($result as $data)
   {
       $data->order_number=$newNumber;
   }
}

如果这是PHP Native ,我将使用以下代码:

Route::get('/admin/setCarouselOrder', 'AdminController@setCarouselOrder')->name('/admin/setCarouselOrder')

我已经在控制器上进行了试用:

{{1}}

为供您参考,我正在使用“模型”访问名为“ Carousel”的数据库。 我在laravel上的路线是:

{{1}}

但是我对如何在laravel控制器上实现这一点感到困惑?请帮助我找出方法。这里需要解决方案。

非常感谢

1 个答案:

答案 0 :(得分:0)

在控制器中使用以下功能,

注意:请不要忘记添加use Illuminate\Http\Request;

 public function setCarouselOrder(Request $request){
    foreach($request->positions as $position) {
       $index = $position[0];
       $newPosition = $position[1];
       $affectedRows = Country::whereId($index)->update(['position' => $newPosition]);
    }
} 

您的路线(使用POST提交表单提交网络服务)

Route::post('/admin/setCarouselOrder', 'AdminController@setCarouselOrder')->name('admin.setCarouselOrder')

假设您有一个Country.php模型文件 希望能有所帮助。如果您需要更多说明,请在评论中让我知道