La chiamata al cambio dovrebbe essere sull'elemento selezionato non sull'etichetta
<label class="col-sm-2 form-control-label">Codigo Productor (*)</label>
<select name="vendedor_codigo onchange="productorInfo(this.value)">
Ma mi viene anche in mente che potresti non capire bene il processo. La tua chiamata ajax non verrà attivata quando la pagina viene caricata, quindi questo 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>
penserei che ti stia dando avvisi di variabili indefinite (a meno che tu non stia impostando $ajax_productor_result
inizialmente in qualche modo)
Le risposte da ajax vengono solitamente disegnate in .js tramite success:function
(result) {
$("#ajax-vendedor").html(result);
}
dall'aspetto di questo però - a meno che non ci sia più codice di quello che è stato pubblicato, stai passando la funzione .html() a un array o righe di database, quindi non visualizzerà mai nulla.
quindi è necessario 1) disegnare una selezione senza opzioni al suo interno (o opzioni predefinite se le hai) 2) restituire una risposta che la funzione di successo può utilizzare ad es. una stringa json che jquery può analizzare3) formatta i dati in jquery nel <options>
e quindi utilizza il .html()
funzione per aggiornare select4)se vuoi che ciò accada quando la pagina viene caricata inizialmente, aggiungi una chiamata document ready a productorInfo(id)
funzione - questo sarebbe rilevante se stai impostando il valore di selezione iniziale in qualche modo (quindi potrebbe non essere rilevante per te)