Ver Mensaje Individual
  #5 (permalink)  
Antiguo 19/03/2012, 14:01
Jalrez
 
Fecha de Ingreso: marzo-2012
Mensajes: 2
Antigüedad: 12 años, 1 mes
Puntos: 0
Respuesta: Updatepanel en php

Cita:
Iniciado por maycolalvarez Ver Mensaje
Lo que necesitas es implementar la técnica AJAX donde la petición y respuesta es manejada por javascript, tal cual lo debe hacer el updatepanel de asp
Existen framework javascript que te pueden facilitar la tarea, como jquery, mootools, prototype, ente otros; aunque no estaría mal que conocieras la técnica desde 0.

PD: utilice la herramienta highlight para mostrar código html
Hola maycolalvarez,

Finalmente he estado buscando sobre los FW que me has indicado y he podido resolver el problema! :)

Ahora lo que me queda es combinar esto con el envío automático al hacer click en el input pero lo resolveré, lo que más me preocupaba era conseguir recargar únicamente la sección y he utilizado prototype que era el que me pareció más simple de utilizar.

Aquí dejo el código tal y como lo tengo:

En el head:

Código Javascript:
Ver original
  1. <script type="text/javascript" src="http://localhost/login/prototype.js"></script>
  2. <script type="text/javascript">
  3. function protoSend(){
  4. var params = Form.serialize($('buscador'));
  5. alert(params);
  6. new Ajax.Updater('problems_wrapper', 'busqueda.php', {asynchronous:true, parameters:params});
  7. }
  8. </script>

El formulario:

Código HTML:
Ver original
  1. <form name="buscador" method="POST" id="buscador" onSubmit="protoSend();return false;" action="busqueda.php">
  2.                                  
  3.     <input class="radioDemo" name="guardados" value="0" type="radio" />
  4.     <input class="radioDemo" name="guardados" value="1" type="radio"  />
  5.     <input class="radioDemo" name="guardados" value="2" type="radio" />
  6.     <input class="radioDemo" name="reto" value="mes" type="radio" />
  7.     <input class="radioDemo" name="reto" value="semana" type="radio"  />
  8.     <input class="radioDemo" name="reto" value="dia" type="radio" />
  9.     <input type="submit" value="enviar">
  10.                
  11. </form>

En el script busqueda.php:

Código PHP:
Ver original
  1. if (($_POST["reto"])!="0" & ($_POST["reto"])!=NULL ){  
  2.     $reto=$_POST['reto'];
  3.    
  4.     $query1 = "SELECT * FROM `problemas` WHERE `problema_id` IN (SELECT `problema_id` FROM `retos` WHERE `tipo`='$reto')";
  5.     verProblemas();
  6.    
  7. }else{
  8.     if(($_POST["guardados"])!=NULL ) {
  9.         $guardados=$_POST['guardados'];
  10.    
  11.  
  12.  if ($guardados!=0){
  13.      
  14.  
  15.             if ($guardados==1){
  16.                     $query1 .= "SELECT * FROM `problemas` WHERE `problema_id` IN (SELECT `problema_id` FROM `problemas_guardados` WHERE `solver`='$usuario')";
  17.                     verProblemas();
  18.                    
  19.             }else{
  20.                     $query1 .= "SELECT * FROM `problemas` WHERE `problema_id` NOT IN (SELECT `problema_id` FROM `problemas_guardados` WHERE `solver`='$usuario')";
  21.                     verProblemas();
  22.                    
  23.             }        
  24.  }else{
  25.      $query1 = "SELECT * FROM `problemas`";
  26.      verProblemas();
  27.  }
  28.  }}
  29. function verProblemas(){  
  30. ?>
  31.                  <div id="problems_wrapper">
  32.                  
  33.                    
  34.                  
  35.                  
  36.            
  37. <?
  38. }
  39. $result= mysql_query($query1) or die (mysql_error());
  40.  
  41. $n=mysql_num_rows($result);
  42. if ($n==0){
  43.    
  44.         ?>sin resultados<?
  45.                    
  46.    
  47. }else{
  48.     $i=1;
  49. while ($row1 = mysql_fetch_array($result)) {
  50.         $reward[$i]=$row1['recompensa'];
  51.         $categorie[$i]=$row1['nombre_categoria'];
  52.         $title[$i]=$row1['titulo'];
  53.         $timetogo[$i]=tiempoRestante($row1['final']);  
  54.         $referencia[$i]=$row1['problema_id'];
  55.         $query2="SELECT * FROM `Soluciones` WHERE `solver`='$solver' AND `id_problema` IN (SELECT `problema_id` FROM `problemas` WHERE `titulo`='$title[$i]') HAVING `version`='1' ORDER BY `titulo` DESC;";
  56.         $result2 = mysql_query($query2) or die(mysql_error());
  57.         $soluciones[$i]=  mysql_num_rows($result2);
  58.                    
  59.           echo "<div class='problem_element'>";
  60.           echo "<div class='reward'>";
  61.           echo "$reward[$i]€";
  62.           echo "</div>";
  63.           echo "<div class='categorie'>";
  64.           echo "$categorie[$i]";
  65.           echo "</div>";
  66.           echo "<div class='timetogo'>";
  67.           echo "$timetogo[$i]";
  68.           echo "</div>";
  69.           echo "<div class='element_title'><span>";
  70.           echo "$title[$i]";
  71.           echo "</span></div>";
  72.           echo "<div class='recieved'>";
  73.           echo "$soluciones[$i]";
  74.           echo "<img class='icon_table_active' src='http://localhost/images/yellowbulb.png'></div>";
  75.           echo "<div class='options'><a href='/../problemas_guardados/guardar_problema.php?identificador=";
  76.           echo "$referencia[$i]";
  77.           echo "'><img class='icon_table_active' src='http://localhost/images/TC.png'></a><a href='http://localhost/soluciones_enviadas/soluciones_enviadas.php?referencia=<?echo $referencia[$i]?>'><img class='icon_table_active' src='http://localhost/images/bulb.png'></a></div>";
  78.           echo "<div class='voter'>";
  79.          
  80.            echo "</div>";
  81.            echo "</div>";  
  82.            $i++;
  83.        }
  84. }

Si tenéis alguna recomendación más lo agradeceré!

Muchas gracias por la ayuda, os debo una :)