我正在使用laravel。我在控制器中有如下所示的功能。我想获得$update_tugas_id
值并将其设置为公共文件夹中的javascript。你知道吗?
public function getTugasDetailUpdate(Request $request)
{
$update_tugas_id = $request->get("V_ID_PK");
$getDataListPengikut = DB::select("EXEC dbo.GET_KEMENPAR_LIST_PENGIKUT '".$update_tugas_id."'");
$getPengikut2 = DB::select("EXEC dbo.LOV_M_PENGIKUT");
$msg["opt"] ="";
$no=1;
foreach($getDataListPengikut as $dtListPengikut):
$msg["opt"] .= '<tr>
<td><select class="form-control" id="name_'.$dtListPengikut->KODE.'" name="nameupdate[]" data-live-search="true" style="width:100%">
<option value=""> --Silahkan Pilih-- </option>';
foreach ($getPengikut2 as $getPeng){
$msg["opt"] .= '<option value="'.$getPeng->KODE.'"@if( '.$dtListPengikut->DESKRIPSI.'=='.$getPeng->KODE.') selected @endif>'. $getPeng->DESKRIPSI .'</option>';
}
$msg["opt"] .='</select>
</td>
if ($no == 1){
$msg["opt"] .= '<td><button type="button" name="add" id="addupdate'.$no.'" onclick="addMe(this);return false" class="btn btn-success"><b>+</b></button>
</td>';
}
else{
$msg["opt"] .= '<td><button type="button" name="remove" id="removeupdate'.$no.'" onclick="removeMe(this);return false" class="btn btn-danger"><b>x</b></button>
</td>';
}
$msg["opt"] .= '</tr>';
$no++;
endforeach;
echo json_encode($msg);
}
以下是我的javascript。我想将值设置为var optionS = $('#name_3').html();
行3,因为我想用我从控制器获得的值进行更改。
var i=1;
function addMe(e){
var optionS = $('#name_3').html();
i++;
$('#dynamic_field_update').append('<tr id="row'+i+'" class="dynamic-added"><td><select class="form-control" id="name_3" name="nameupdate[]" data-live-search="true" style="width:100%">'+optionS+' </select></td><td><input type="text" name="ketupdate[]" placeholder="Keterangan" style="text-transform:uppercase" class="form-control ket_list" required /></td><td><button type="button" name="remove" id="newremoveupdate'+i+'" onclick="removeMe(this);return false" class="btn btn-danger btn_remove"><b>x</b></button></td></tr>');
}
答案 0 :(得分:1)
在控制器内部形成HTML
然后将其发送回前端的请求通常是一种糟糕的方法,但要将其存储在javascript变量中,您可以这样做:
var optionS = '{!! $html !!}'; //{!! and !!} displays unescaped data
如果您希望在变量中存储non-HTML
响应,可以这样设置:
var optionS = '{{ $variable }}'; //{{ and }} displays escaped data
但显示转发数据的最佳方法,如果该变量不长,则在HTML
内部生成标记并添加data-username
之类的属性,例如并将用户名放在那里,然后你可以用javascript获取它。
<div data-username="{{ $username }}"></div>
将控制器中的任何重要变量或HTML传输到视图并像上面一样使用它们通常是一个坏主意,您应尽可能避免使用它。