#javascript #php #jquery #ajax #laravel
#javascript #php #jquery #ajax #laravel
Вопрос:
Я хочу вызвать значение параметра выбора в условие laravel, и я хочу знать, как его использовать в моем create.blade.php
, вот пример:
@if (a is selected)
// code goes here
@endif
a
значение параметра выбора
В настоящее время я использую ajax для преобразования значения html в значение php, но все еще не работаю. Как мне его передать?
Вот мой код параметра выбора в create.blade.php
<div class="form-group">
<p class="card-text">Jenis Jadwal </p>
<div class="">
<select class="form-control" id="frm-status" name="status">
<option value="">PIlih</option>
<option value="rutin" {{ old('status') == 'rutin' ? 'selected' : '' }}>Rutin</option>
<option value="khusus" {{ old('status') == 'khusus' ? 'selected' : '' }}>Khusus</option>
<option value="libur-tahunan" {{ old('status') == 'libur-tahunan' ? 'selected' : '' }}>Libur Tahunan</option>
<option value="nge-plus" {{ old('status') == 'nge-plus' ? 'selected' : '' }}>Nge-plus</option>
</select>
</div>
</div>
Вот мой сценарий ajax в create.blade.php
<script type="text/javascript">
$(function() {
$('#colorpicker').farbtastic('#warna');
// run on change for the selectbox
$( "#frm-status" ).change(function() {
updateStatusDivs();
});
// handle the updating of the duration divs
function updateStatusDivs() {
// hide all form-duration-divs
$('.form-status-div').hide();
var divKey = $( "#frm-status option:selected" ).val();
var getStatus = null;
$('#divFrm' divKey).show();
if (divKey === "khusus") {
$('#divFrmtanggal').show();
$('#divFrmjadwal').show();
$('#divFrmcheckbox').hide();
getStatus = "khusus"
} else if (divKey === "nge-plus"){
$('#divFrmtanggal').show();
$('#divFrmcheckbox').show();
getStatus = "nge-plus"
} else if (divKey === "libur-tahunan"){
$('#divFrmtanggal').show();
$('#divFrmcheckbox').show();
getStatus = "libur-tahunan"
} else if (divKey === "rutin"){
getStatus = "rutin"
};
$.ajax({
url: '/jadwal/tablekaryawanajax',
type: 'POST',
data: {
name: getStatus
},
success: function(data) {
console.log(data);
},
error: function() {
console.log('error');
}
});
};
// run at load, for the currently selected div to show up
updateStatusDivs();
});
</script>
Вот мой маршрут для tablekaryawanajax
(другие маршруты в этой группе не имеют значения, поэтому я их исключаю)
Route::group(['prefix' => 'jadwal'], function () {
Route::post('tablekaryawanajax', 'JadwalController@tablekaryawanajax')->name('jadwal.tablekaryawanajax');
});
Вот моя tablekaryawanajax
функция в JadwalController.php
public function tablekaryawanajax(Request $request)
{
return view('Jadwal.karyawantable', compact('karyawan'));
}
Комментарии:
1. Вы получаете статус после ответа ajax. Таким образом, вы не можете сделать это с помощью серверного языка. Ajax будет вызываться после завершения процесса серверной части. Вам нужно сделать это с помощью javascript, а не с помощью php
2. Я понял вашу точку зрения, но есть ли у вас какие-либо идеи, как их исправить? возможно, загрузить опцию выбора перед загрузкой create blade?
3. Да, передайте переменную с помощью вашего контроллера, затем выберите поле с переменной php