Foro de elhacker.net

Programación => PHP => Mensaje iniciado por: jperezmonge en 20 Abril 2012, 11:52 am



Título: [PHP POO] Implementar código AJAX en la vista
Publicado por: jperezmonge en 20 Abril 2012, 11:52 am
Pues esa es mi duda, estoy empezando a programar con php orientado a objetos, entonces estoy en el controlador teléfono con la acción editar o modificar.

Lo que consiste en es poder editar un teléfono hasta aquí todo perfecto.

Ahora tengo 3 campos que son <select>:
  • Tipo centro
  • Nombre centro
  • Departamento centro

Son dependientes es decir nombre centro dependerá de tipo centro y departamento centro dependerá de nombre centro.

Entonces yo con php estructurado lo que hacia era que cuando se producía un cambio llamaba a submit y mandaba el dato por get y realizaba una consulta con el dato nuevo y rellenaba el select

Como haría esto o alguna solución para cagar datos, me han dicho que la solución es con ajax, pero no tengo ni idea de como hacerlo es decir como lo implemento con POO. desde la vista no se debería llamar al modelo para que me de un array con los datos.

Bueno eso a ver si me podéis dar una solución o orientarme un poco


Título: Re: [PHP POO] Implementar código AJAX en la vista
Publicado por: EFEX en 20 Abril 2012, 14:19 pm
Si cuando surge un evento de un boton que envie una petición en formato json y esta responda para poder hacer la operación. Te recomiendo JQuery, sabes que cualquier duda aqui estamos  ;)

jQuery.ajax()
http://api.jquery.com/jQuery.ajax/ (http://api.jquery.com/jQuery.ajax/)


Título: Re: [PHP POO] Implementar código AJAX en la vista
Publicado por: jperezmonge en 20 Abril 2012, 14:42 pm
Si cuando surge un evento de un boton que envie una petición en formato json y esta responda para poder hacer la operación. Te recomiendo JQuery, sabes que cualquier duda aqui estamos  ;)

jQuery.ajax()
http://api.jquery.com/jQuery.ajax/ (http://api.jquery.com/jQuery.ajax/)

A simple vista no me he enterado de nada de lo que pone ahí, no he tenido nunca uso de jQuery, y voy la verdad que a contrarreloj para entregar el proyecto.

Seria muy complicado mandar el valor seleccionado en un <selected> y con ese valor hacer una consulta y montar otro <select> con los valores de la consulta y devolverlo a la pagina desde donde se mando el valor?

O si mandar un <select> es dificil un div con este contenido o algo similar.


Título: Re: [PHP POO] Implementar código AJAX en la vista
Publicado por: jperezmonge en 24 Abril 2012, 13:44 pm
Ya conseguir hacerlo, pero ahora quiero hacerlo con xml, he estado viendo un ejemplo en esta pagina. http://www.librosweb.es/ajax/capitulo14/ejercicio_16.html (http://www.librosweb.es/ajax/capitulo14/ejercicio_16.html).
Me he descargado el ejemplo completo y mas o menos lo entiendo y he empezado a modificar para poder coger los datos a través de consulta sql y ya rellenar los mismo combos y me es imposible, me podéis echar una mano?

He intentado hacer cosas como estas:

Código
  1. $link=conectar();
  2. $tipoCentro = trim($_REQUEST['tipoCentro']);
  3. $consulta=mysql_query("SELECT DISTINCT sede.tipoCentro FROM sede WHERE tipoCentro ='". $tipoCentro ."'");
  4. while($registro=mysql_fetch_row($consulta)){
  5. $elementos_xml[] "<nombreSede>
  6. <codigo>".$registro['tipoCentro']."</codigo>
  7. <nombre>".$registro['tipoCentro']."</nombre>
  8.          </nombreSede>";
  9. }
  10.  
  11.  
  12.  
  13. echo "<nombreSedes>\n".implode("\n", $elementos_xml)."\n</nombreSedes>"

Pero cuando hago click en el combo el segundo no se modifica y como no muestra ningún tipo de fallo ni nada no tengo ni idea de donde puede estar el fallo.


Título: Re: [PHP POO] Implementar código AJAX en la vista
Publicado por: engel lex en 28 Abril 2012, 04:38 am
te recomiendo que chequees jquery ^^ para jscript es SUPER util, especialmente con las peticiones en ajax... si la quieres facil (sin que se considere spam) aqui hay una pagina donde yo aprendí inicialmente

http://www.javascriptya.com.ar/jquery/

la intención es que con ajax llames dinamicamente a un php y le pidas la data y el jscript se encargue de manejarla

aunque creo que estas enredando un poco las cosas... con php la parte de orientado a objetos es eso... los form son html... y ajax es una combinación entre un jscript y un php que le devuelve los datos por echo, lo que pusiste de POO no tiene ni el nombre XD


si me das un poco mas de info posiblemente pueda ayudar mas... aunque no dejes de aprender jquery :)


Título: Re: [PHP POO] Implementar código AJAX en la vista
Publicado por: jhonatanAsm en 28 Abril 2012, 20:43 pm
con el metodo

$.post('archivoAEnviar.php','dato1:juan&&dato2:aaa',function(a)
//  la variable 'a' almacena los datos devueltos de 'archivoAEnviar.php'
alert(a.ropa.camisa);
alert(a.ropa.pantalon);

)) ;

'archivoAEnviar.php' tendria esto:
<?php
//puede hacer la conexion con la bd
//segun lo enviado
// si todo va bien llegaria a escribir esto:
$p[]=$ropa['camisa'=>'bonita','pantalon'=>'muy grande']
echo json_encode($p);//los datos que le van a llegar en una variable a
//la funcion $.post de jquery.
// tambien tienes la funcion de php que convierte un array en xml, la cual no recuerdo  :silbar:.
?>

vamos que jquery es la onda.salu2