【问题标题】:How pass input field value using route parameter to a controller in laravel如何使用路由参数将输入字段值传递给 laravel 中的控制器
【发布时间】:2020-12-19 13:15:26
【问题描述】:

如何使用路由参数将输入字段值传递给我的控制器。单击下面的锚标记后,我想将下面输入字段的值传递给我的控制器,我该如何实现?

下面是我的代码

 <input type="text"  name="sender_address" value="Alberta" class="form-control margin-bottom-20 hide" style="border:1px solid  brown;" placeholder=" Enter & Save address">

 <a href="/sender_address/{sender_address}">Save Address</a>

【问题讨论】:

  • 不要使用 GET 参数传递大数据
  • 为什么不用表格呢?
  • 我没有使用表单,因为输入字段在另一个表单中,我无法嵌套表单

标签: laravel


【解决方案1】:

不推荐使用此方法来实现该要求,作为替代方法,您可以借助 jquery 通过 AJAX POST 方法将值传递给控制器​​。

 <input type="text" id="sender_address" name="sender_address" value="Alberta" class="form-control margin-bottom-20 hide" style="border:1px solid  brown;" placeholder=" Enter & Save address">
 <a class="save_address">Save Address</a>

我已将类添加到您的锚标记。让我们继续

$('.save_address').on('click', function(e){
   e.preventDefault();
   var address = $('#sender_address').val();
   
   $.ajax({
        type: 'POST',
        url: '/sender_address',
        data: {
            sender_address : address
        },
        async: false,
        dataType: 'json',
        success: function (response) {
            console.log(response);
        }
    });
});

【讨论】:

  • 感谢您的帮助,但是点击保存地址锚标签后,没有任何反应。我有一个像这样的 jquery 脚本链接 "
  • 您是否将类名作为“save_address”添加到锚标记中?
  • 是的,我做了,和你做的一模一样
【解决方案2】:

您可以使用以下 3 个选项来传递输入值

1)你可以使用表单

<form class="form-horizontal" action="path_to_action" method="POST">
      @csrf
    <input type="text"  name="sender_address" value="Alberta" class="form-control margin-bottom-20 hide" style="border:1px solid  brown;" placeholder=" Enter & Save address">
<button type="submit" class="btn btn-add btn-lg">Save Address</button>    
</form>

2)您可以使用 jQuery / AjAX 来做到这一点。

<input type="text" id="sender_address" name="sender_address" value="Alberta" class="form-control margin-bottom-20 hide" style="border:1px solid  brown;" placeholder=" Enter & Save address">
 <a class="save_address">Save Address</a>
$('#save_address').on('click', function(e){
   e.preventDefault();
   var address = $('#sender_address').val();
   
   $.ajax({
        type: 'POST',
        url: '/sender_address',
        data: {
            sender_address : address
        },
        async: false,
        dataType: 'json',
        success: function (response) {
            console.log(response);
        }
    });
});

3)你可以使用&lt;a&gt;标签

<a href="{{ route('sender_address', $sender->id) }}"></a>

如果您使用&lt;a href="{{ route('sender_address', $sender-&gt;id) }}"&gt;&lt;/a&gt;,则需要使用该 ID 从数据库中检索数据

【讨论】:

  • 感谢您的帮助。我没有使用表单,因为输入字段在另一个表单中,我无法嵌套表单。我不明白您传递输入值的第三个选项,请您分解一下以便我理解代码。
  • 观看此视频,就像编辑选项一样。 youtube.com/watch?v=Dg5iB_ehUhQ&ab_channel=FundaOfWebIT
  • 好的,谢谢
猜你喜欢
  • 2016-05-16
  • 2017-01-12
  • 2012-09-20
  • 2013-06-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-04-03
相关资源
最近更新 更多