これは私のシナリオです: 私は、別の一部のビューを含むブートストラップDataTableの列にあるラジオボタンを使用している、部分的には、このコードが含まれていますLaravel - ブートストラップDataTableのラジオボタン(yajra)
<input type="radio" name="shipping_address_id"
value="{{$shippingAddress->id}}" {!! $shippingAddress->default?'checked="checked"':''!!} />
そしてそれは、このようにデータテーブルリモートローディングを使用して追加された:
Datatables::of($addresses)
->addColumn('action', function ($shippingAddress) {
return view('admin.shippingaddress.partials.actions_invoice', compact('shippingAddress'))->render();
})->make(true);
と$ shippingAddress->はデフォルトがfalseの場合、それは次のようにレンダリングされます:
<input type="radio" name="shipping_address_id" value="8">
そして、このような、それは本当である:それは含まれていても
<input type="radio" name="shipping_address_id" value="3" checked="checked" />
しかし、私はdt.reload(呼び出し)RDBは、それが実際にチェックされていない「にチェック」=チェックします。
addressesDataTable = $('#addressesDataTable').DataTable({
processing: true,
serverSide: true,
searchDelay: 1000,
ajax: {
type: 'GET',
url: url.replace('idToReplace', $('#buyerSelect').val()),
error: function (a, b, c) {
console.log(a);
console.log(b);
console.log(c);
},
dataSrc: function (response) {
return response.data;
}
},
columns: [
{data: 'name', name: 'countries.name'},
{data: 'postal', name: 'shipping_addresses.postal'},
{data: 'city', name: 'shipping_address.city'},
{data: 'address', name: 'shipping_address.address'},
{data: 'default', name: 'shipping_address.default'},
{data: 'action', name: 'action', orderable: false, searchable: false}
]
});
Iが(私はこのようにリロードコールバック関数を使用してみました)テーブルを再ロードする場合でも:私はこのようにデータテーブルを初期化しても
更新は
addressesDataTable.ajax.reload(function(){
$('input[name=shipping_address_id]:checked').prop("checked", true);
});
チェックされたラジオボタンは実際にはチェックされていません。
dt.reload()コールはどこでやっていますか?あなたはクライアント側のjavascriptでそれをやっているように聞こえます。その場合、すでに配信されているHTMLの更新を世話するためにコールバックを渡すべきではありませんか? Laravelは最初のレンダリングを処理しますが、クライアント側のjavascriptで実行する関数の概念はありません。 –
@JohnnyMagrippis詳細を追加する質問を更新しました – SamDroid
あなたはフィドルを提供できますか? –