как я могу передать переменную php из моего select в jquery?
У меня есть следующий код для загрузки всех стран на моем сайте:
$(document).ready(function() {
$.ajax({
type: 'GET',
url: '/comunidades',
success: function(response) {
$("#cbx_comunidad").empty();
// console.log(response);
$("#cbx_comunidad").prepend("<option value='' selected='selected'>Seleccione Comunidad</option>");
for (i = 0; i < response.length; i++) {
$("#cbx_comunidad").append("<option value='" + "rellena una opcion" + "</option>");
//console.log('response' + response[i].id);
$("#cbx_comunidad").append("<option value='" + response[i].id + "'>" + response[i].comunidad + "</option>");
}
}
});
});
И с этой загрузкой все мои провинции на моем сайте:
$('#cbx_comunidad').on('change', function(event) {
$.ajax({
type: 'GET',
url: '/provincias/' + event.target.value,
success: function(response) {
$("#cbx_provincia").empty();
// console.log(response);
$("#cbx_provincia").prepend("<option value='' selected='selected'>Seleccione Provincia</option>");
for (i = 0; i < response.length; i++) {
$("#cbx_provincia").append("<option value='" + "rellena una opcion" + "</option>");
$("#cbx_provincia").append("<option value='" + response[i].id + "'>" + response[i].provincia + "</option>");
}
}
});
});
Я хочу задать значение по умолчанию, выберите такой:
function setDefault(defValue) {
alert(defValue);
$('#cbx_comunidad option').each(function () {
if (($(this).attr('value')) === defValue) {
$(this).attr('selected', 'selected');
}
});
}
и в моем php коде мне нужно что-то похожее на следующее:
<label for="cbx_comunidad">Seleccione Comunidad:</label>
$usercomunidad = $user->comunidad_id
<select onload="setDefault($user->comunidad_id)"
class="form-control @error('cbx_comunidad') is-invalid @enderror"
name="cbx_comunidad"
id="cbx_comunidad"
required></select>
Это возможно иметь триггер для передачи моей переменной php в мой код jquery? Как выбрать значение по умолчанию для обновления представления?
Ответы - как я могу передать переменную php из моего select в jquery? / how can I pass php variable from my select to jquery?

20.01.2020 09:20:40
Я должен быть в состоянии просто напечатать ваши очищенные данные PHP в вашей разметке следующим образом.
<label for="cbx_comunidad">Seleccione Comunidad:</label>
<select onload="setDefault('<?php echo htmlentities($user->comunidad_id, ENT_QUOTES, 'UTF-8'); ?>')" class="form-control @error('cbx_comunidad') is-invalid @enderror" name="cbx_comunidad" id="cbx_comunidad" required>
</select>


20.01.2020 09:28:18
Вы заполняете select from ajax при загрузке документа, но пытаетесь установить выбранное значение сразу после загрузки элемента select. Это означает, что выбор пуст и не имеет вариантов, чтобы соответствовать в это время. Вы должны попытаться сделать выбор после добавления / добавления всех опций. Таким образом, в select используйте data-id для хранения выбранного значения и считывания этого значения, чтобы предварительно выбрать опцию после добавления всех опций.
$(document).ready(function() {
$.ajax({
type: 'GET',
url: '/comunidades',
success: function(response) {
$("#cbx_comunidad").empty();
// console.log(response);
$("#cbx_comunidad").prepend("<option value='' selected='selected'>Seleccione Comunidad</option>");
for (i = 0; i < response.length; i++) {
$("#cbx_comunidad").append("<option value='" + "rellena una opcion" + "</option>");
//console.log('response' + response[i].id);
$("#cbx_comunidad").append("<option value='" + response[i].id + "'>" + response[i].comunidad + "</option>");
}
$("#cbx_comunidad").val($("#cbx_comunidad").data('id'));
}
});
});
И в вашем html:
<select data-id="$user->comunidad_id"
class="form-control @error('cbx_comunidad') is-invalid @enderror"
name="cbx_comunidad"
id="cbx_comunidad"
required>
</select>

20.01.2020 09:31:22
Вам нужно Эхо переменных php, если вы планируете передавать их как JS params.
(onload="setDefault({{ $user->comunidad_id }})"
)
Вместо этого вы можете использовать data-*
в select.
<label for="cbx_comunidad">Seleccione Comunidad:</label>
<select class="form-control @error('cbx_comunidad') is-invalid @enderror"
name="cbx_comunidad"
id="cbx_comunidad"
data-id="{{ $user->comunidad_id ?: '' }}"
required></select>
$('#cbx_comunidad').on('change', function(event) {
$.ajax({
type: 'GET',
url: '/provincias/' + event.target.value,
success: function(response) {
let value = $("#cbx_provincia").attr('data-id');
$("#cbx_provincia").empty();
$("#cbx_provincia").prepend("<option disabled "+(value ? '' : 'selected')+">Seleccione Provincia</option>");
for (i = 0; i < response.length; i++) {
$("#cbx_provincia").append("<option value='" + response[i].id + "'" + (value == response[i].id ? 'selected' : '') + ">" + response[i].provincia + "</option>");
}
}
});
});