##わからないこと
いつも大変お世話になっております。
この度ajaxを通して非同期処理を行い、結果の箇所でビュー側にtableを追加しようとしているのですが、うまくいっておりません。
処理は通っているのですが、どこが原因なのかわかっていないのでご教授いただければ幸いです。
javascript
1 2$(".js-open-copy").click(function(e) { 3 e.preventDefault(); 4 var url = $(this).attr("href"); 5 modalCopy(url); 6 }); 7 // }}} 8 // modalMatching {{{ 9 var modalCopy = function(href){ 10 var $bigModel = $("#copyModal").modal(); 11 $bigModel.find(".modal-body").resizable({ 12 handles: "e", 13 resize: function(e, ui){ 14 var parent = ui.element.parent(); 15 ui.element.siblings().css('width', (1 - ui.element.width()/parent.width())*100+"%"); 16 }, 17 stop: function(e, ui) { 18 var parent = ui.element.parent(); 19 ui.element.css('width', ui.element.width()/parent.width()*100+"%"); 20 } 21 }); 22 $.ajax({ 23 type: "POST", 24 url: href, 25 }).done(function(html){ 26 var $dom = $(html); 27 $("#copyModal").find(".modal-body").empty().append($dom); 28 $("#copyModal").find(".table-search td > a").click(idEditBtnClicked); 29 $("#copyModal").find(".js-add-job-copy").click(function(e) { 30 e.preventDefault(); 31 var url = $(this).attr("href"); 32 addCopy(url); 33 }); 34 }).fail(function(error){ 35 $("#copyModal").modal('hide'); 36 }); 37 return false; 38 }; 39var addCopy = function(url) { 40 $.ajax({ 41 type:"POST", 42 url:url, 43 }).done(function(html){ 44 var i = 0; 45 var tag = ''; 46 var table = '<table class="table-search m-a-0" id="jobTable"'+ html.jobid +'"">'; 47 $.each(html.jitems, function(index, value) { 48 var tr ='<tr><th>'+ value.meta.name + '</th><td data-meta=' + html.jitems[i] + '><span>' + value.html + '</span><a href="javascript:void(0)"><i class="fa fa-pencil"></i></a></td></tr>'; 49 i++; 50 $(table).prepend(tr); 51 }); 52 var tableEnd = '</table>'; 53 var ht = $(table).prepend(tableEnd);console.log(ht); 54 // $("#copyModal").find('table').after(html); 55 // $("#copyModal").find('table.table-search:last').after(ht); 56 $("#copyModal").find(".client-table-box").after(ht); 57 }).fail(function(){ 58 $("#copyModal").modal("hide"); 59 }); 60 };
html
1<div class="client-table-box"> 2<table class="table-search m-a-0" id="jobTable{{$jobid}}"> 3@foreach($jitems as $jitem) 4<tr> 5<th></th> 6<td data-meta=""><span></span><a href="javascript:void(0)"><i class="fa fa-pencil"></i></a></td> 7</tr> 8@endforeach 9</table> 10</div> 11<a href="" class="js-add-job-copy">追加でコピーする</a> 12
<div class="modal fade in" id="copyModal"> <div class="modal-dialog modal-xl"> <div class="modal-content"> <div class="modal-header"> <button type="button" class="close" data-dismiss="modal">×</button> <h5 class="modal-title">コピー</h5> </div> <div class="modal-body p-a-0 clearfix"> </div> <div class="modal-footer"> <button type="button" class="btn btn-default" data-dismiss="modal">閉じる</button> </div> </div> </div> </div>
php
1public function addcopy() { 2 $time = microtime(true); 3 $jobId = request()->input('jobid'); 4 5 $client = Job::select('client_id')->where('id',$jobId)->first(); 6 $client = $client['client_id']; 7 $fulltext = Fulltext::select('id','phase_id','data')->where('type', 'client')->where('main_id', $client)->first(); 8 $meta = []; 9 foreach (Cmeta::select('citem_id', 'value')->where('client_id', $client)->get()->toArray() as $cmeta) { 10 $meta[$cmeta['citem_id']] = $cmeta['value']; 11 } 12 \DB::statement('SET FOREIGN_KEY_CHECKS=0;'); 13 $jmeta = Job::createSet($client); 14 $data = ['client'=>$meta,'meta'=>[$jmeta['jitem_id']=>$jmeta['value']]]; 15 if ($jobId) { 16 foreach (Jmeta::select('jitem_id','value')->where('job_id', $jobId)->where('jitem_id','!=',$jmeta['jitem_id'])->get()->toArray() as $orig) { 17 $meta = new Jmeta(); 18 $meta['job_id'] = $jmeta['job_id']; 19 $meta['jitem_id'] = $orig['jitem_id']; 20 $meta['value'] = $orig['value']; 21 $meta->save(); 22 $data['meta'][$orig['jitem_id']] = $orig['value']; 23 } 24 } 25 $cdata = $fulltext['data']; 26 $cdata['job'][$jmeta['job_id']] = $data['meta']; 27 Fulltext::where('id', $fulltext['id'])->updateData($cdata); 28 Fulltext::where('id', $fulltext['id'])->update(['phase_id'=>-1]); 29 Fulltext::incrementPhase('client', $fulltext['phase_id'], -1); 30 Fulltext::incrementPhase('client', -1, 1); 31 $fulltext = new Fulltext(); 32 $fulltext['type'] = 'job'; 33 $fulltext['main_id'] = $jmeta['job_id']; 34 $fulltext['time'] = $time; 35 $fulltext->setData($data); 36 $fulltext->save(); 37 Fulltext::incrementPhase('job', 0, 1); 38 \DB::statement('SET FOREIGN_KEY_CHECKS=1;'); 39 40 41 42 $jitems = [5, 39]; 43 $jHash = array_flip($jitems); 44 45 $models = call_user_func('\App\Models\Jitem::select', 'id', 'name', 'meta')->whereIn('id', $jitems)->get()->toArray(); 46 foreach ($models as $item) { 47 $meta = $item['meta']; 48 $meta['item'] = $item['id']; 49 $meta['name'] = $item['name']; 50 $meta['komoji'] = 'j'; 51 $meta['id'] = $jmeta['job_id']; 52 $data[$jHash[$item['id']]] = ['meta'=>$meta]; 53 } 54 $items['j'] = $data; 55 56 foreach (Jmeta::select('id', 'jitem_id','value')->where('job_id', (int)$jmeta['job_id'])->whereIn('Jitem_id', $jitems)->get() as $meta) { 57 $itemi = $jHash[$meta['jitem_id']]; 58 $items['j'][$itemi]['meta']['value'] = $meta['value']; 59 $items['j'][$itemi]['html'] = $meta->getHtml($items['j'][$itemi]['meta']); 60 } 61 // }}} 62 // $citems {{{ 63 $jitems = []; 64 foreach (array_keys($items['j']) as $i) { 65 if (isset($items['j'][$i]['meta']['value']) && $items['j'][$i]['meta']['value'] !== '') { 66 $jitems[] = $items['j'][$i]; 67 } 68 } 69 $params['jitems'] = $jitems; 70 $params['jobid'] = $jmeta['job_id']; 71 72 return $params; 73 }
不明な個所は、Jquery最後にある「after」の箇所でございます。
何卒よろしくお願い申し上げます。
回答1件
あなたの回答
tips
プレビュー