[PHP POO] Implementar código AJAX en la vista

Iniciado por jperezmonge, 20 Abril 2012, 11:52 AM

0 Miembros y 1 Visitante están viendo este tema.

jperezmonge

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

EFEX

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/
GITHUB 

jperezmonge

Cita de: 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/

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.

jperezmonge

#3
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.
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 (php) [Seleccionar]
$link=conectar();
$tipoCentro = trim($_REQUEST['tipoCentro']);
$consulta=mysql_query("SELECT DISTINCT sede.tipoCentro FROM sede WHERE tipoCentro ='". $tipoCentro ."'");
while($registro=mysql_fetch_row($consulta)){
$elementos_xml[] "<nombreSede>
<codigo>".$registro['tipoCentro']."</codigo>
<nombre>".$registro['tipoCentro']."</nombre>
          </nombreSede>";
}



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.

engel lex

#4
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 :)
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.

jhonatanAsm

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
mi primer lenguaje fue ensamblador, tengo 60 años, y no creo que haya sido un error.

- La mayor complejidad de todas es hacer complejo algo que no lo es.

- El inteligente no es aquel que lo sabe todo sino aquel que sabe utilizar lo poco que sabe.