Ver Mensaje Individual
  #1 (permalink)  
Antiguo 06/04/2012, 17:49
joelxheredia
 
Fecha de Ingreso: abril-2012
Mensajes: 3
Antigüedad: 12 años, 10 meses
Puntos: 0
Exclamación Duda ajax - php - mysql

Hola... un placer saludarles. Tengo una duda con ajax, resulta ser que estoy creando una pagina web, la cual simula la moderación de un administrador, el cual acepta/rechaza la petición de los usuarios que seleccionan un producto, el cual quieren adquirir (una empresa de tv por cable).

Al grano XD, tengo una pagina que muestra el modulo de administración, en el cual hay un botón donde mediante ajax, llamo a una pagina que consulta una base de datos, la cual al ser leída da paso a la creación de una tabla con diversos campos (solicitante - plan actual - plan a adquirir - estado(aprobado/rechazado las cuales están en una lista desplegable)), luego de crear la tabla, creo un botón el cual al ser presionado, dependiendo de la opción de estado que el administrador seleccione consulta el cliente en la base de datos para actualizar su plan de tv.

Al ejecutar la pagina directamente sin ajax, la actualización de la base de datos se realiza exitosamente, y todo va de lujo.

http://imageshack.us/photo/my-images/843/87155398.jpg

Pero cuando uso ajax para llamarla en la pagina principal, me muestra la tabla y el botón, lo que está muy bien, pero cuando doy clic al botón, no me actualiza la base de datos.

http://www.subirimagenes.net/show-image.php?id=270bea196d934d9b4a7fde77ed263973

Pero al hacer click en el botón todo desaparece y nada se actualiza en la base de datos.

http://www.subirimagenes.net/show-image.php?id=86374f245c4c20d2e21a3256676ca67d

Me preguntaba si alguien podría ayudarme un poco.


Este es el código de la pagina principal donde hago uso de ajax
Código HTML:
<script>
var ajax;

function funcionCallback()
{
	// Comprobamos si la peticion se ha completado (estado 4)
	if( ajax.readyState == 4 )
	{
		// Comprobamos si la respuesta ha sido correcta (resultado HTTP 200)
		if( ajax.status == 200 )
		{
			// Escribimos el resultado en la pagina HTML mediante DHTML
			document.all.salida.innerHTML = ajax.responseText+"</b>";	
		}
	}
}

function recuperaResidencia()
{
	// Creamos el control XMLHttpRequest segun el navegador en el que estemos 
	
    if( window.XMLHttpRequest )
		ajax = new XMLHttpRequest(); // No Internet Explorer
	else
		ajax = new ActiveXObject("Microsoft.XMLHTTP"); // Internet Explorer

	// Almacenamos en el control al funcion que se invocara cuando la peticion
	// cambie de estado	
	ajax.onreadystatechange = funcionCallback;

	// Enviamos la peticion
	ajax.open( "GET", "pagina2.php", true );       
	ajax.send( "" );
}
</script>
    <br/>
<span id="salida"></span> 
Este es el código de la pagina, que llamo dentro de la función de ajax

Código PHP:
<?php 
  
for($j=0;$j<500;$j++){
  
$datos[j]="";
  }
  
  include(
"conectar.php");
  
$clase = new Mysql();
  if(!
$clase->Conectar())
        echo 
"No se logró conectar con la Base de Datos";
        
  
$sql "select * from solicitud where sol_anterior like '%".$_GET["consulta"]."%'";
  
$res $clase->Query($sql);
  
$band=0;
  
$cont=0;
  while(
$fila mysql_fetch_array($res))
  {
  if(
$band==0){
  
?>
  Resultados:<br />
  <form id="form1" name="form1" method="post" action="">
    <label>
    <table width="90%" border="1" align="center">
      <tr>
        <td bgcolor="#99CCFF"><div align="center" class="style3">Solicitante</div></td>
        <td bgcolor="#99CCFF"><div align="center" class="style3">Plan Actual</div></td>
        <td bgcolor="#99CCFF"><div align="center" class="style3">Plan Solicitado</div></td>
        <td bgcolor="#99CCFF"><div align="center" class="style3">Estado</div></td>
      </tr>
      <?php
  
  
  $band
=1;
  }
  if(
$fila[3]==|| $fila[3]==1){
  
$datos[$cont]=$fila[0];
  
$sql2 "select * from informacion where login like '%".$fila[0]."%'";
  
$res2 $clase->Query($sql2);

  
$fila2 mysql_fetch_array($res2);
  
?>
      
      <tr>
        <td><div align="center"><?php echo $fila2[1]." ".$fila2[2]; ?></div></td>       
        
        <td><div align="center"><?php     
        
if(!empty($fila[1])) echo $fila[1]; //-----------> plan anterior
        
else echo "No Disponible";
        
?></div></td>
        
        <td><div align="center"><?php
        
if(!empty($fila[2])) echo $fila[2]; //-----------> plan solicitado
        
else echo "No Disponible";
        
?></div></td>
        
        <td><div align="center">
          <select name="select<?php echo $cont?>" id="select" >
                   <?php echo '<option>En Proceso</option>'?>
                   <?php echo '<option>Aprobada</option>'?>
                   <?php echo '<option>Rechazada</option>'?>
            </select>
        </div></td>
      </tr>
      <?php 
            
  $cont
++;
  }
  }
  
  
?>
    </table>
    <div align="center">
      <input type="submit" name="aprobar" id="aprobar" value="Guardar" />
    </div>
    </label>
      </form>  
  <br />
  <div align="center"></div>
  <p>&nbsp;</p>
  
  <?php 
  
if(isset($_POST["aprobar"])){
      for(
$i=0;$i<$cont;$i++){

        if(
$_POST["select".$i]=="Aprobada"){
        
            
$sql3="select * from solicitud where login='".$datos[$i]."'";
            
$res3=$clase->Query($sql3);
            if(
$fila=mysql_fetch_array($res3)){
                
//actualizar o modificar
                
$sql4="update solicitud set login='".$datos[$i]."',sol_anterior='".$fila[2]."', sol_nueva='', estado='1' where login='".$datos[$i]."'";
                if(
$res4=$clase->Query($sql4)){
                    echo 
"Registro Actualizado...";
                    
?>
                    <script type="text/javascript">
                    document.location = 'pagina2.php';
                    </script>

                    
                    <?php
                    
}
                else
                    echo 
"Ha ocurrido un error de Actualizacion...";
            }
        }
//aprobada
                
        
if($_POST["select".$i]=="En Proceso"){
        
//aqui hace algo
        
}//en proceso
                
        
if($_POST["select".$i]=="Rechazada"){
        
//aqui hace algo
        
}//rechazada
        
        
    
}

  }
  
?>

Última edición por joelxheredia; 06/04/2012 a las 17:58