Ver Mensaje Individual
  #1 (permalink)  
Antiguo 28/08/2007, 17:41
Avatar de gabyweb
gabyweb
 
Fecha de Ingreso: enero-2002
Ubicación: Lima
Mensajes: 364
Antigüedad: 22 años, 10 meses
Puntos: 0
Problemas con combos dinámicos PHP y Ajax

Hola,

Tengo un script php que tiene lo siguiente:

Código PHP:
<?php
         $rs_proyecto
=mysql_query("select * from Compañia order by Nombre",$cn);
         
$nr_proyecto=mysql_num_rows($rs_proyecto);
         echo 
"<select name='cbocompania' class='Estilo41' style = 'width:150px' onchange='Carga_Type(1);'>";
         echo 
"<option value=''>(Choose)</option>";
         while(
$rowmysql_fetch_array($rs_proyecto)) {
          
$row[1] = htmlentities($row[1]);
          echo 
"<option value='$row[0]'>".$row[1]."</option>";
         }
         echo 
"</select>";?>
En el "onchange" llamo a la función Carga_Type(1) y aquí llamo a ajax_prueba.php usando el método GET así:

Código:
 
function Carga_Type(opcion)
{
 // Recibo el número correspondiente al combo que se debe llenar de datos
 //var selectAnterior=selectACargar-1; // Obtengo el número del combo que activó el evento onChange
 // Extraigo el valor del combo que se ha cambiado
 var proyecto = document.frmarea.cboproyecto.value;
 var codcompa = document.frmarea.cbocompania.value;
 <?php echo ("var user='".$userx."';\n"); ?>
 
 if (opcion==1) {
 
  if (codcompa!=0)
  {
   ajax=nuevoAjax();
   // Envio al servidor el valor seleccionado y el combo al cual se le deben poner los datos
   ajax.open("GET","ajax_prueba.php?compa="+codcompa+"&opcion="+opcion+"&proy="+proyecto+"&user="+user+"", true);
 
   ajax.onreadystatechange=function() 
   { 
    if (ajax.readyState==1)
    {
     // Mientras carga elimino la opcion "Elige" y pongo una que dice "Cargando"
     elemento=document.getElementById("cboproyecto");
     elemento.length=0;
     //var opcionCargando=document.createElement("option"); opcionCargando.value=0; opcionCargando.innerHTML="Searching...";
     //elemento.appendChild(opcionCargando); elemento.disabled=true; 
    }
 
    if (ajax.readyState==4)
    {
     // Coloco en la fila contenedora los datos que recibo del servidor
     alert(codcompa);
     alert(ajax.responseText);
     //document.getElementById('fila_3').innerHTML=ajax.responseText;
     //alert(document.getElementById('fila_3').innerHTML);
     
    }
   }
   ajax.send(null);
 
  } else { 
   elementox=document.getElementById("cboproyecto");
   elementox.length=0;
   var opcionCargandox=document.createElement("option"); opcionCargandox.value=0; opcionCargandox.innerHTML="---";
   elementox.appendChild(opcionCargandox); elementox.disabled=true;
       
  }
 } //Fin Opcion 1

}


ajax_prueba.php tiene lo siguiente:

Código PHP:
?php
include("conexion.php");
$cn=Conectar();
$proyecto=$_GET["proy"];
$xcompa=$_GET["compa"];
$userx $_GET['user'];
//Llena combo de Types dinámicamente
if ($_GET['opcion']==1)
{
         
 
$rs_type=mysql_query("select P.Id_Proyecto, P.Nombre 
       from Proyecto P 
       inner join Compañia_Proyecto CP 
       on P.Id_Proyecto = CP.Id_Proyecto 
       inner join Compañia C 
       on CP.IdCompañia = C.IdCompañia
       where C.IdCompañia=" 
.$xcompa"
       and P.Id_Proyecto NOT IN (select Id_Proyecto from Usuario_Proyecto where User_Id='"
.$userx."')");
                
 echo 
"<select class='combo' id='cboproyecto' name='cboproyecto' style='font-size:12px; font-family:Arial,Helvetica,sans-serif; width:150px'>";
 while(
$rowmysql_fetch_array($rs_type)) {
  
$row[1]=htmlentities($row[1]); 
  echo (
"<option value='".$row[0]."'>".$row[1]."</option>");
 }   
 echo 
"</select>";
}
?> 
El problema está cuando quiero mostrar el alert(ajax.responseText); en IE me muestra diferentes errores como:

Parse error, syntax unexpected '>' y no ejecuta nada

Sin embargo en Mozilla todo funciona bien

Qué estoy haciendo mal??

Gracias, espero su ayuda


__________________
Gaby :adios: