【问题标题】:Laravel Blade - Append view to table tbodyLaravel Blade - 将视图附加到表 tbody
【发布时间】:2018-06-25 11:46:55
【问题描述】:

我正在尝试将行附加到表中,但它没有通过<tr> 和<td>,它是有线的。不带这两个标签全部通过。

我的 jquery 代码是这样的:

$.get('/remove-day-travel/'+id, function(data)
   {
     $('#travelTable tbody').html('');
     $('#travelTable tbody').append(data);


     addDayTravel();
     removeDayTravel();
   });

我的控制器:

public function removeDayTravel($id)
{
  $intervention = DB::table('interventionDays')->select('interventionId')->where('id', $id)->first();

  //DB::table('interventionDays')->where('id', $id)->delete();

  $travelHours = DB::table('interventionDays')
                ->where('interventionId', $intervention->interventionId)
                ->orderBy('day', 'ASC')
                ->get();
  return view('current-dayTravel', compact('travelHours'));
}

我的观点是:

@if(count($travelHours) > 0)
  <?php $count = 1; ?>
  @foreach ($travelHours as $key => $value)
    <input type="hidden" name="day-travel-id[{{$count}}]" value="{{$value->id}}">
    <input type="hidden" name="day-travel-remove[{{$count}}]" value="0">
    <tr>
      <td><label>Dia {{$count}}:</label></td>
      <td><label>Ida</label></td>
      <td class="@if ($errors->has('hour-day-1[' . $count . ']')) has-error @endif">
        {!! Form::text('hour-day-1[' . $count . ']', $value->morningStart , ['class' => 'form-control travelGoStartHour', 'placeholder'=> '']) !!}
      </td>
      <td class="@if ($errors->has('hour-day-2[{{$count}}]')) has-error @endif">
        {!! Form::text('hour-day-2[' . $count. ']', $value->morningEnd, ['class' => 'form-control travelGoEndHour', 'placeholder'=> '']) !!}
      </td>
      <td>
        <label>Volta</label>
      </td>
      <td class="@if ($errors->has('hour-day-3[' . $count . ']')) has-error @endif">
        {!! Form::text('hour-day-3[' . $count . ']', $value->afternoonStart, ['class' => 'form-control travelBackStartHour', 'placeholder'=> '']) !!}
      </td>
      <td class="@if ($errors->has('hour-day-4[' . $count . ']')) has-error @endif">
        {!! Form::text('hour-day-4[' . $count . ']', $value->afternoonEnd, ['class' => 'form-control travelBackEndHour', 'placeholder'=> '']) !!}
      </td>
      <td>
        {!! Form::checkbox('dinner[' . $count . ']', 0,$value->dinner) !!}
      </td>
      <td>
        {!! Form::checkbox('stay[' . $count . ']', 0,$value->stay) !!}
      </td>
      <td>
        @if($key == count($travelHours) -1)
          <i class="icon-plus-circled add-new-day-travel" title="Adicionar Novo dia" data-id="1"></i>
        @endif
      </td>
      <td>
        @if($key == count($travelHours) -1)
          <i class="icon-cancel remove-day-travel" title="Remover dia" data-id="{{$count}}" data-record="{{$value->id}}"></i>
        @endif
      </td>
    </tr>
    <?php $count += 1; ?>
  @endforeach
@endif

但是返回给我这个:

我不明白为什么?我做错了什么?

谢谢

【问题讨论】:

  • 尝试在返回之前渲染您的视图并检查它是否修复它。 return view('current-dayTravel', compact('travelHours'))-&gt;render();
  • 不要工作@Laerte
  • 好的!这是一个奇怪的问题...
  • 你不是只是想在你的javascript中使用php代码吗?
  • 现在我改变视图并将所有表格与thead和tbody一起放置。我的 javascript 确实附加到 tableId 并且可以工作!我不明白是什么问题,但这种方法有效。

标签: php jquery html laravel blade


【解决方案1】:
$('#travelTable tbody').html(data);

在您的 JS 中使用上述内容,而不是您当前拥有的内容

【讨论】:

    【解决方案2】:

    当您在tbody 或thead 或tfooter 之外渲染tr 或th 甚至td 标记时,html 会忽略它们并将它们替换为空白,因为这些标记只能放置在开始和结束表格标签之间。

    浏览器会忽略&lt;tbody&gt;、&lt;tr&gt; 和&lt;td&gt; 标记以及相应的结束标记。这在 HTML 规范中没有指定,因为它们没有定义语法错误文档的解析。然而,在 HTML5 草案中,有一个描述以一种与浏览器实际操作相对应的方式定义浏览器行为:Tree construction.

    这意味着您不能编写包含例如表格元素之外的元素的 HTML 文档。浏览器中的 HTML 解析器根本不构造这样的文档树。 (但是,您可以使用客户端脚本动态构建这样的文档。)

    在此处查看之前的答案:

    How do browsers analyze <tr> <td> without <table>?

    【讨论】:

      猜你喜欢
      • 2016-09-02
      • 2018-04-06
      • 2015-06-11
      • 1970-01-01
      • 2019-05-19
      • 2014-03-10
      • 1970-01-01
      • 2017-10-07
      • 2015-03-28
      相关资源
      最近更新 更多