Estoy trabajando con php y quiero cambiar el valor del menú desplegable usando jquery, quiero pasar la matriz de php a la variable jquery (hacer un valor desplegable dinámico) En este momento estoy obteniendo una matriz ($ datos) en el siguiente formato
Array ( [0] => stdClass Object ( [UserId] => 8 [name] => web1 ) [1] => stdClass Object ( [UserId] => 9 [name] => web2 ) )
Y aquí está mi secuencia de comandos que muestra valores "desplegables" estáticos, pero quiero pasar los valores de la matriz php (nombre) al menú desplegable para poder hacer un menú desplegable dinámico
<script> var newOptions = { "Select your user":"", "Option 1":"option-1", "Option 2":"option-2" }; var $el = $('#acf-field_628e17fc947e4'); $el.html(' '); $.each(newOptions, function(key, value) { $el.append($("<option></option>") .attr("value", value).text(key)); }); </script>
var newOptions = <?php echo json_encode($array); ?>;
y luego cambie su línea de adición a esto y estará listo para comenzar
$el.append('<option value="'+ value.UserId +'">'+ value.name +'</option>');
Fragmento de trabajo:
var newOptions = [{"UserId":8,"name":"web1"},{"UserId":9,"name":"web2"}]; var $el = $('#acf-field_628e17fc947e4'); $el.html(' '); $el.append('<option value="">Select your user</option>'); $.each(newOptions, function(key, value) { $el.append('<option value="'+ value.UserId +'">'+ value.name +'</option>'); });
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <select id="acf-field_628e17fc947e4"></select>
Nota: para agregar la opción de selección, agréguela en una matriz como esta:
array_unshift($array , ['UserId'=>'',"name":"name":"web1"]);
Y luego elimine esta línea: $el.append('<option value="">Select your user</option>');
Tiene una matriz para pasar de PHP a JS para que pueda usar json_encode como: (El ejemplo a continuación es dinámico)
<?php $phpArray = array( 0 => "Mon", 1 => "Tue", 2 => "Wed", 3 => "Thu", 4 => "Fri", 5 => "Sat", 6 => "Sun", ) ?> <script type="text/javascript"> var jArray = <?php echo json_encode($phpArray); ?>; for(var i=0; i<jArray.length; i++){ alert(jArray[i]); } </script>