【问题标题】:Editing radio button in laravel在 laravel 中编辑单选按钮
【发布时间】:2018-04-03 13:01:36
【问题描述】:

我正在尝试使用单选按钮编辑数据,但每当我尝试编辑它时,结果返回都是空白的。我已经搜索过与他类似的其他人的帖子,但仍然无法正常工作(例如:Edit Radio Button / Dropdown list

我这里做错了吗?

当我在它上面使用 dd 函数时,它只会返回这个:

"gender" => null

但以前我用过这个我可以得到我的结果<input type="text" name="gender" value="{{ $object->gender }}" class="form-control">

这是我的代码:

  <form class="form-horizontal" method="post" action="{{ url('/user/show/'.$object->id) }}">
          {{ method_field('PUT')  }}
          {{ csrf_field() }}

          <label class="col-md-2">Gender:</label>
            <div class="col-md-6">
             <input type="radio" name="gender" value="{{$object->male}}"> Male<br>
             <input type="radio" name="gender" value="{{$object->female}}"> Female<br>              
            </div>
      <div class="form-group">
        <div class="col-md-6-offset-2">
          <input type="submit" class="btn btn-primary" value="Save">
        </div>
      </div>

    </form>

控制器:

public function edit($id){
    $object = user_info::find($id);

    return view('edit', compact('object'));

}

public function update(Request $request, $id){
    $object = user_info::find($id);
     $object->gender = $request->input('gender');

    //$object->update();
dd($object);
    return redirect('/home');
}

【问题讨论】:

  • 结果返回为空是什么意思?你是说它运行成功但没有返回结果,还是说应用程序只是返回一个空白页?也请发布此表格PUTs 数据的控制器代码。
  • 运行成功但返回结果为空。比如我已经有了“gender:Male”,但是改成female之后,结果就是“gender:”
  • 您的性别标签未关闭。另外,你能做一个 die and dump 来显示 $object 的值是什么吗?
  • @GoogleMac 我做了一个 dd 并且它返回我 null,但是如果我只使用“ " 而不是单选按钮,它将返回结果
  • 请发布您的控制器代码。

标签: php laravel radio-button


【解决方案1】:

问题是您没有在表单中选择任何选项。我建议您将选项包装在 select 标记中。您必须使用 if 语句(条件将在此处找到)来检查值是否为真,然后打印出 checked="checked" 表示选择了单选按钮。
这是代码:

下拉菜单

<form class="form-horizontal" method="post" action="{{ url('/user/show/'.$object->id) }}">
          {{ method_field('PUT')  }}
          {{ csrf_field() }}

          <label class="col-md-2">Gender:</labe
            <div class="col-md-6">
              <select name="gender" id="gender" class="form-control" required>
                 <option value="">Choose....</option>
                 <option value="Male" {{ $object->gender == 'Male' ? 'selected' : ''}}>Male</option>
                 <option value="Female" {{ $object->gender == 'Female' ? 'selected' : ''}}>Female</option>                                                         
              </select>            
            </div>
      <div class="form-group">
        <div class="col-md-6-offset-2">
          <input type="submit" class="btn btn-primary" value="Save">
        </div>
      </div>

    </form>

单选按钮

<form class="form-horizontal" method="post" action="{{ url('/user/show/'.$object->id) }}">
          {{ method_field('PUT')  }}
          {{ csrf_field() }}

          <label class="col-md-2">Gender:</labe
            <div class="col-md-6">
                 <input type=radio name="Gender" value="Male" {{ $object->gender == 'Male' ? 'checked' : ''}}>Male</option>
                 <input type=radio name="Gender" value="Female" {{ $object->gender == 'Female' ? 'checked' : ''}}>Female</option>            
            </div>
      <div class="form-group">
        <div class="col-md-6-offset-2">
          <input type="submit" class="btn btn-primary" value="Save">
        </div>
      </div>

    </form>

【讨论】:

  • 感谢您的回复,此答案有效,我能够获取我的数据,但是否可以向我展示一个单选按钮示例,这是一个下拉列表
  • 是的...有可能我会尽快更新答案!!
  • 非常感谢
  • 为复选框值提供相同的过程
  • 非常感谢@MalemScha
【解决方案2】:
<div class="col-md-6">
     <input type="radio" name="gender" value="male"> Male<br>
     <input type="radio" name="gender" value="female"> Female<br>              
</div>

使用对象可能不是您最好的方法。我会使用“男性”和“女性”的静态字符串值。 Here 是 Laravel 方法中性别单选按钮的指南。

【讨论】:

  • 但我试图从特定用户那里获取信息,这就是为什么我使用 $object 使用此函数将其关联回来 "
    "
  • 是的,但是您将性别输入分配给 $object->gender。该值尚未设置,因为 $object->male 和 $object->female 为空。这就是为什么你要转储 null。在 html 中给它一个静态文本值,它会分配一个你想要的真实值。文本字段有效,因为您输入的是真实值。
  • 没问题。 MVC 编程只会使用控制器中的对象来呈现 html。您可以使用 php 来注入值,但对于男性和女性之类的东西,只需使用静态值。您仍然可以将其附加到用户 ID,但您也可以通过将用户 ID 作为隐藏字段传递给表单来做到这一点。然后你的 $request 可以有一个 id 来引用用户。
【解决方案3】:
  <div class="form-group"> 
                <input name="gender" id="gender" value="male" type="radio" />Male        
              <input name="gender" id="gender" value="female" type="radio" />Female

       <script type="text/javascript">
         document.forms['form'].elements['gender'].value='{{$register->gender}}'

       </script>

【讨论】:

  • $register 是寄存器控制器的对象
猜你喜欢
  • 2013-07-29
  • 2021-12-04
  • 2023-01-11
  • 2013-10-03
  • 2013-02-27
  • 2019-07-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多