【问题标题】:Laravel insert dynamic input values with radio buttonLaravel 使用单选按钮插入动态输入值
【发布时间】:2025-12-09 09:10:02
【问题描述】:

我是 Laravel 的初学者,我想在数据库中插入一个更动态的地址字段,并且我想使用单选按钮选择一个主地址。我可以添加更多地址字段,但是我无法选择一个主要地址,因为它选择了所有单选按钮值。我在下面使用我的代码给出了

这是我的刀片文件

    <div>
          <form action="{{ route('register.post') }}" enctype="multipart/form-data" accept-charset="utf-8" method="POST" >
               @csrf
              <div class="form-group row">
                  <label for="address" class="col-md-4 col-form-label text-md-left">Address</label>
                   <div>
                     <table id="dynamicAddRemove">
                       <tr>
                         <td><button type="button" name="add" id="add-btn" class="btn btn-success">Add More Details</button></td> 
                        </tr>
                        <tr>
                          <td>
                              
                          </td>
                          <tr>
                      </table>
                      </div>
                  </div>    
                  <div class="col-md-6 offset-md-4">
                    <button type="submit" class="btn btn-primary">
                            Save
                     </button>
                 </div>
                </form>
                <div>
                <script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
                <script type="text/javascript">
                    var i = 0;
                    $("#add-btn").click(function(){
                        //alert("I am an alert box!");
                    ++i;
                    $("#dynamicAddRemove").append('<tr><td><input type="text" name="moreFields['+i+'][house_no]" placeholder="House No" class="form-control" /></td><td><input type="text" name="moreFields['+i+'][street_name]" placeholder="Street Name" class="form-control" /></td><td><input type="text" name="moreFields['+i+'][area]" placeholder="Area" class="form-control" /></td><td><input type="text" name="moreFields['+i+'][pincode]" placeholder="Pincode" class="form-control" /></td><td style="padding-left:50px;"><input type="radio" class="form-check-input" name="moreFields['+i+'][primary_address]" value="'+i+'"></td><td><button type="button" class="btn btn-danger remove-tr">Remove</button></td></tr>');
                    });
                    $(document).on('click', '.remove-tr', function(){  
                    $(this).parents('tr').remove();
                    });  
                    </script>

这是我的控制器文件

 public function postRegistration(Request $request)
{  
    $id = DB::getPdo()->lastInsertId();
    foreach ($request->moreFields as $key => $value) {
      
        Address::create([
            'user_id'=>$id,
            'house_no'=>$value['house_no'],
            'street_name'=>$value['street_name'],
            'area'=>$value['area'],
            'pincode'=>$value['pincode'],
            'primary_address'=>$value['primary_address'],
            
        ]);
    }

【问题讨论】:

  • 您是否尝试在谷歌上搜索一些解决方案?必须有一些谷歌的教程来实现这一点。
  • 是的,我已经尝试了一些代码,并且可以添加更多地址字段,但是我无法选择一个主要地址,因为它正在选择所有单选按钮值

标签: javascript php laravel


【解决方案1】:

您不需要使不同名称的单选按钮对所有单选按钮使用相同的名称,以便用户在选择一个后无法选择其他单选按钮

<input type="radio" class="form-check-input" name="moreFields" value="'+i+'">

【讨论】:

  • 您好,感谢您的回复。我已经使用了你的代码,但是我得到了非法字符串偏移 'house_no' 错误
  • 我认为你做错了,因为在控制器中你使用键值对使用 moreFields 数组,所以我相信这里的单选按钮不起作用。
  • ''
  • 现在得到有效值,但它不是一个数组并且只得到一个值所以我不知道如何插入这个值