Der onchange-Aufruf sollte auf dem Select-Element stehen, nicht auf dem Label
<label class="col-sm-2 form-control-label">Codigo Productor (*)</label>
<select name="vendedor_codigo onchange="productorInfo(this.value)">
Aber mir kommt auch in den Sinn, dass Sie den Prozess vielleicht nicht ganz verstehen. Ihr Ajax-Aufruf wird nicht ausgelöst, wenn die Seite geladen wird, also dieses 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>
Ich würde denken, dass Sie undefinierte Variablenwarnungen erhalten (es sei denn, Sie setzen $ajax_productor_result
anfänglich irgendwie)
Antworten von Ajax werden normalerweise in .js über success:function
gezeichnet(result) {
$("#ajax-vendedor").html(result);
}
so wie es aussieht - es sei denn, es gibt mehr Code als das, was gepostet wurde, übergeben Sie der .html()-Funktion ein Array oder Datenbankzeilen, sodass sie niemals etwas anzeigen wird.
Sie müssen also 1) eine Auswahl ohne Optionen beim Laden der Seite zeichnen (oder Standardoptionen, falls vorhanden) 2) eine Antwort zurückgeben, die die Erfolgsfunktion verwenden kann, z. eine json-Zeichenfolge, die jquery analysieren kann3) die Daten in jquery in <options>
formatieren und verwenden Sie dann die .html()
Funktion zum Aktualisieren von select4), wenn Sie möchten, dass dies geschieht, wenn die Seite zum ersten Mal geladen wird, dann fügen Sie einen document ready-Aufruf zu productorInfo(id)
hinzu Funktion - dies wäre relevant, wenn Sie den anfänglichen Auswahlwert auf irgendeine Weise festlegen (daher ist es möglicherweise nicht relevant für Sie)