Creo que estas confundiendo las cosas... un error por defecto es algo que funciona mal... en este caso todo funciona pero no como quieres...
Te dejo un ejemplo de como trabajo con AJAX para solucionar este tipo de cosas:
PAGINA HTML Código HTML:
<html>
<head>
<title>Ejemplo</title>
<script language="Javascript" type="text/javascript">
<!--
function cargaModelo(id){
var url = "getModelo.php?idMarca="+id;
http.open("GET", url, true);
http.onreadystatechange = function(){
if (http.readyState == 1){
window.status = "Guardando datos...";
}
if (http.readyState == 4){
window.status = "Pe\u00F1aservicio";
var json = eval(\'(\' + http2.responseText + \')\');
var numMod = json.arrModelo.length;
document.getElementById(\'modelo\').length = 0;
document.getElementById(\'modelo\').options[0] = new Option("Seleccione un Modelo","0");
for(var x=0; x < numMod ; x++){
document.getElementById(\'modelo\').options[x+1] = new Option(json.arrModelo[x].nombre,json.arrModelo[x].id);
}
}
}
http.send(null);
}
-->
</script>
</head>
<body>
<!-------------------------------------------------------------------------- Inicia Formulario ----------------------------------------------------------------------------->
<h2 style="font-family:Arial" "border-width:1px" "border-style:solid" "border-color:#000000">Carros</h2>
<form action="" method="post" name="form">
Formulario de venta<br>
<br>
<br>
Selecciona la marca :
<select name="marca" onchange="cargaModelo(this.options[this.selectedIndex].value)">
<option disabled>- - Seleccionar - -</option>
</select>
<br>
<br>
Selecciona el modelo :
<select name="modelo">
<option disabled>Elija una marca</option>
</select>
<br>
<br>
Su precio es :
<input type="text" name="price" SIZE="5" MAXLENGTH="5">
<br>
<br>
<input type="button" name="Registrar" value="Registrar" onClick="validar()">
</form>
</body>
</html>
PAGINA PHP (getModelo.php) Código PHP:
<?php
$id = $_GET['idMarca']
echo modelos($id);
function modelos($id){
$sql = "SELECT Id_modelo, modelo
FROM modelo
WHERE Id_marca = $id";
$result = mysql_query($sql);
$i = 0;
while($data = mysql_fetch_array($result)){
$getModelo[$i]['id'] = utf8_encode($data['Id_modelo']);
$getModelo[$i]['nombre'] = utf8_encode($data['modelo']);
$i++;
}
$arrResp = array("arrModelo"=>$getModelo);
return ''.json_encode($arrResp).'';
}
?>
Creo que con eso te servira, revisa que los campos que estoy buscando sean los correctos en tu base de datos en terminos de consulta en $sql y de nombres.
Suerte!