De onchange-oproep moet op het geselecteerde element staan en niet op het label
<label class="col-sm-2 form-control-label">Codigo Productor (*)</label>
<select name="vendedor_codigo onchange="productorInfo(this.value)">
Maar het komt me ook voor dat je het proces misschien niet helemaal begrijpt. Je ajax-oproep wordt niet geactiveerd wanneer de pagina wordt geladen, dus dit stukje:
<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>
ik zou denken dat het je ongedefinieerde variabelewaarschuwingen geeft (tenzij je $ajax_productor_result
instelt aanvankelijk op de een of andere manier)
Reacties van ajax worden meestal in .js getrokken via success:function
(result) {
$("#ajax-vendedor").html(result);
}
zo te zien echter - tenzij er meer code is dan wat er is gepost, geef je de .html()-functie door aan een array of databaserijen, zodat er nooit iets wordt weergegeven.
dus je moet 1) een selectie tekenen zonder opties erin bij het laden van de pagina (of standaardopties als je die hebt) 2) een antwoord retourneren dat de succesfunctie kan gebruiken, b.v. een json-tekenreeks die jQuery kan ontleden3)format de gegevens in jQuery in de <options>
en gebruik dan de .html()
functie om de select4) bij te werken als u wilt dat dit gebeurt wanneer de pagina voor het eerst wordt geladen, voeg dan een documentklare aanroep toe aan de productorInfo(id)
functie - dit zou relevant zijn als u de initiële selectiewaarde op de een of andere manier instelt (dus mogelijk niet relevant voor u)