sql >> Databáze >  >> RDS >> Mysql

Dynamicky aktualizovat rozevírací seznam na základě předchozího výběru pomocí PHP PDO

Volání onchange by mělo být na prvku select, nikoli na štítku

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

Ale také mě napadá, že tomu procesu možná úplně nerozumíte. Vaše volání ajaxu se při načtení stránky nespustí, takže tento 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>

Myslím, že vám dává varování o nedefinovaných proměnných (pokud nenastavíte $ajax_productor_result zpočátku nějakým způsobem)

Odpovědi z ajaxu se obvykle kreslí v .js pomocí funkce success:

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

z tohoto pohledu - pokud není k dispozici více kódu než to, co bylo zveřejněno, předáváte funkci .html() pole nebo řádky databáze, takže nikdy nic nezobrazí.

takže musíte 1)nakreslit výběr bez možnosti při načítání stránky (nebo výchozí možnosti, pokud je máte)2) vrátit odpověď, kterou může funkce úspěchu využít např. řetězec json, který může jquery analyzovat3)formátovat data v jquery do <options> a poté použijte .html() funkce pro aktualizaci select4), pokud chcete, aby k tomu došlo při prvním načtení stránky, přidejte volání připravené pro dokument do productorInfo(id) funkce – to by bylo relevantní, pokud nějakým způsobem nastavujete počáteční hodnotu výběru (takže to pro vás nemusí být relevantní)




  1. načítání dat pomocí rownum v oracle

  2. SQL Developer:Nelze získat systémové statistiky:nedostatečná oprávnění

  3. Nelze načíst ovladač QMYSQL na PySide2

  4. MySQL. Primární klíč v relační tabulce. Jedinečné ID nebo více jedinečných klíčů?