我有點新的Ajax + PHP。 我有一個選擇輸入,根據其值填充另一個選擇。onchange函數不工作,因爲預期ajax
這是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中遇到這個錯誤:Uncaught TypeError:對象不是函數。 onchange
任何想法? 在此先感謝。
你正在使用相同的名稱cmbTareas ...嘗試改變其中的一個名字 – Hackerman 2013-05-08 21:12:31
謝謝你的工作 – leandronn 2013-05-09 18:39:58