La llamada onchange debe estar en el elemento seleccionado, no en la etiqueta
<label class="col-sm-2 form-control-label">Codigo Productor (*)</label>
<select name="vendedor_codigo onchange="productorInfo(this.value)">
Pero también se me ocurre que es posible que no entiendas bien el proceso. Su llamada ajax no se activará cuando se cargue la página, así que este bit:
<select id="ajax-vendedor" name="vendedor_nombre">
<?php foreach ($ajax_productor_result as $dd_productor_display) : ?>
<option placeholder="Seleccione codigo" value="<?= $dd_productor_display['vendedor_nombre']; ?>">
<?= $dd_productor_display['vendedor_nombre']; ?>
</option>
creo que le está dando advertencias de variables indefinidas (a menos que esté configurando $ajax_productor_result
inicialmente de alguna manera)
Las respuestas de ajax generalmente se dibujan en .js a través de Success:function
(result) {
$("#ajax-vendedor").html(result);
}
Sin embargo, por lo que parece, a menos que haya más código que el que se ha publicado, está pasando a la función .html() una matriz o filas de la base de datos para que nunca muestre nada.
por lo que necesita 1) dibujar una selección sin opciones en la carga de la página (u opciones predeterminadas si las tiene) 2) devolver una respuesta que la función de éxito puede usar, p. una cadena json que jquery puede analizar 3) formatear los datos en jquery en <options>
y luego use el .html()
función para actualizar select4) si desea que esto suceda cuando la página se carga inicialmente, agregue una llamada de documento listo a productorInfo(id)
función:esto sería relevante si está configurando el valor de selección inicial de alguna manera (por lo que puede no ser relevante para usted)