Mysql
 sql >> Base de données >  >> RDS >> Mysql

Mettre à jour dynamiquement la liste déroulante en fonction de la sélection précédente avec PHP PDO

L'appel onchange doit être sur l'élément select et non sur l'étiquette

<label class="col-sm-2 form-control-label">Codigo Productor (*)</label>
<select name="vendedor_codigo onchange="productorInfo(this.value)">

Mais il me vient aussi à l'esprit que vous ne comprenez peut-être pas très bien le processus. Votre appel ajax ne sera pas déclenché lorsque la page se chargera donc ceci :

<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>

je pense qu'il vous donne des avertissements de variables indéfinies (sauf si vous définissez $ajax_productor_result initialement d'une certaine manière)

Les réponses d'ajax sont généralement dessinées en .js via success :function

(result) {
            $("#ajax-vendedor").html(result);
        }

à première vue, à moins qu'il n'y ait plus de code que ce qui a été publié, vous transmettez à la fonction .html () un tableau ou des lignes de base de données afin qu'il n'affiche jamais rien.

vous devez donc 1) dessiner une sélection sans options lors du chargement de la page (ou des options par défaut si vous en avez) 2) renvoyer une réponse que la fonction de réussite peut utiliser, par ex. une chaîne json que jquery peut analyser3) formater les données dans jquery dans le <options> puis utilisez le .html() fonction pour mettre à jour le select4) si vous voulez que cela se produise lors du chargement initial de la page, ajoutez un appel de document prêt au productorInfo(id) fonction - cela serait pertinent si vous définissez la valeur de sélection initiale d'une manière ou d'une autre (cela peut donc ne pas être pertinent pour vous)