【问题标题】:onchange function not working as espected ajaxonchange 函数没有按预期工作
【发布时间】:2013-05-08 20:58:14
【问题描述】:

我对 ajax+php 有点陌生。 我有一个选择输入,它根据其值填充另一个选择。

这是html:

    <tr>
    <td><label>Categoría: </label></td>
    <td><select id="cmbCategorias" onchange="cmbTareas(document.getElementById('cmbCategorias').value);">
            <?php 
            require_once('dataaccess.php');
            $categorias = new legajos();
            $categorias->cmbCategorias();
            ?>
    </td>
    <td><label>Tarea: </label></td>
    <td><div id="divTareas"></div></td>
    </tr>

这是我的 javascript 函数:

    function cmbTareas(categoria_id) {
    document.getElementById("loadingimage").style.display = "block";
    document.getElementById("divTareas").innerHTML = "";

    xmlhttp = new XMLHttpRequest();

    xmlhttp.onreadystatechange = function() {
    if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
            document.getElementById("divTareas").innerHTML = xmlhttp.responseText;
            document.getElementById("loadingimage").style.display = "none";
            }
        }
    xmlhttp.open("GET", "legajos_tareas.php?categoria_id="+categoria_id, true);
    xmlhttp.send();
    }

legajos_tareas.php

    require_once('dataaccess.php');
    $categoria_id=$_GET['categoria_id'];
    $tareas = new legajos();
    $tareas->cmbTareas($categoria_id);

dataaccess.php

    public function cmbTareas($categoria_id) {
    $con = $this->conectarDB();
    $query = "CALL SPR_TAREAS(".$categoria_id.")";
    $result = $this->con->query($query);

    echo '<select id="cmbTareas">';

    while ($row = $this->con->fetch($result)) {
        echo '<option value="'.$row['ID'].'">'.$row['NOMBRE'].'</option>';
    }
    echo '</select>';
    $this->con->close();
    }

只有第一次才能完美运行。然后,如果我在选择列表中选择另一个项目,则不会发生任何事情。我在 Chrome 中收到此错误:未捕获的 TypeError:对象不是函数。改变

有什么想法吗? 提前致谢。

【问题讨论】:

  • 您使用的是同名 cmbTareas...尝试更改其中一个名称

标签: php javascript mysql ajax


【解决方案1】:

要么更改 cmbTareas JS 函数名称,要么更改您从 ajax 调用返回的 cmbTareas 选择 ID。相同的名称会导致冲突。它还解释了为什么它只在第一次起作用。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-30
    • 2016-10-10
    • 2016-04-08
    • 2014-08-20
    相关资源
    最近更新 更多