Foro de elhacker.net

Programación => PHP => Mensaje iniciado por: Hekaly en 23 Abril 2012, 19:25 pm



Título: Problema con funcion php y <option> seleccionada
Publicado por: Hekaly en 23 Abril 2012, 19:25 pm
Buenas a todos.

En primer lugar, coloco este post aqui por que lo que quiero hacer es ejecutar php, aunque es posible que tenga que usar otros lenguajes, por lo que si este no es el sitio adecuado lo podeis mover o borrar.

Bueno, os pongo en situacion.

Tengo una pagina php con un formulario, dentro de dicho formulario tengo un select con varios option (todo generado con php llamando a una tabla de mi bbdd), esto funciona perfectamente.

El problema lo tengo cuando quiero que aparezca un elemento nuevo (ejemplo, una tabla) dependiendo el <option> que he elegido, ejemplo si dejo marcado una opcion aparece una tabla y si dejo la siguiente aparece otra, etc.

Y ese es el problema. Crear elemento con javascript se hacerlo (con createelement, por ejemplo) pero esa tabla que quiero que aparezca se debe generar dinamicamente con una consulta php a la bd, por lo que no puedo usar javascript.

He probado de todo, intentando agregar un boton que al usar onclick llame a una funcion php,  o que onclick llamae a una funcion js y que esta llame a una funcion php (aunque se que no se debe mezclar php y js, por que una es cliente y otro servidor), o que sea un boton submit y lleme a otra pagina php, dandole la variable y con un switch muestre la tabla dependiendo del <option>, pero o no me sale, o no se ejecuta en la pagina del formulario , si no en otra.

La pregunta es, como se puede hacer esto? Se puede crear aparte todas las tablas por php y que luego en onclick + js muestre el codigo generaro, se debe hacer con ajax ???

Espero que me puedan ayudar, muchas gracias.


Título: Re: Problema con funcion php y <option> seleccionada
Publicado por: #!drvy en 23 Abril 2012, 20:03 pm
Citar
pero esa tabla que quiero que aparezca se debe generar dinamicamente con una consulta php a la bd, por lo que no puedo usar javascript.

Ajax (http://es.wikipedia.org/wiki/AJAX). Ajax (http://es.wikipedia.org/wiki/AJAX). Ajax (http://es.wikipedia.org/wiki/AJAX).

Y con jQuery (http://jquery.com/) y $.get() (http://api.jquery.com/jQuery.get/), en 3 lineas lo tienes.


Saludos


Título: Re: Problema con funcion php y <option> seleccionada
Publicado por: Hekaly en 24 Abril 2012, 08:42 am
Uooo, drvy | BSM, muchas gracias.

Voy a mirar a ver si busco algún ejemplo simple para poder adaptarlo mas tarde a mi  web.


Título: Re: Problema con funcion php y <option> seleccionada
Publicado por: Hekaly en 25 Abril 2012, 18:07 pm
Buanas a todos.

Ya tengo resuelto el tema de los option dinamicos para que cargue una tabla en la misma pagina donde se selecciona el option.

Pero tengo un problema.

Ayer estuve buscando codigos de ejemplo para poder hacerlo y encontre la funcion adecuada, y lo tuve que adapatar al mi web para despues hacer el php. Ahora bien, el problema es que no me carga en el firefox pero si en otros navegadores, os pongo en codigo.

Código
  1. function mostrarClasificaciones(str){
  2. if (str=="") {
  3.  document.getElementById("txtHint").innerHTML="";
  4.  return;}
  5. if (window.XMLHttpRequest){
  6.  // code for IE7+, Firefox, Chrome, Opera, Safari
  7.  xmlhttp=new XMLHttpRequest();}
  8.  {// code for IE6, IE5
  9.  xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");}
  10.  xmlhttp.onreadystatechange=function(){
  11. if (xmlhttp.readyState==4 && xmlhttp.status==200){
  12.    document.getElementById("txtHint").innerHTML=xmlhttp.responseText;}}
  13.  xmlhttp.open("GET","getuser.php?q="+str,true);
  14.  xmlhttp.send();
  15. }

Mas o menos se lo que hace todo el codigo, pero creo que el problema de que no me funcione en el firefox puede ser esta parte:

Código
  1. if (window.XMLHttpRequest){
  2.  // code for IE7+, Firefox, Chrome, Opera, Safari
  3.  xmlhttp=new XMLHttpRequest();}
  4.  {// code for IE6, IE5
  5.  xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");}
  6.  xmlhttp.onreadystatechange=function(){
  7. if (xmlhttp.readyState==4 && xmlhttp.status==200){
  8.    document.getElementById("txtHint").innerHTML=xmlhttp.responseText;}}

Que es donde (supongo) programa para que se vea en mas navegadores. He probado con quitar esa parte o cachos pero el script no me funciona (no realiza la parte php).

La pregunta es, es problema del codigo o se requiere una configuracion para que firefox lo soporte?

Muchas gracias.


Título: Re: Problema con funcion php y <option> seleccionada
Publicado por: lucdovina en 1 Noviembre 2012, 01:29 am
Hola Hekaly, soy bastante novata en este mundo... Me gustaría que me colaboraras con la parte de las option dinámicas que cargan una tabla en la misma pagina dependiendo de la opción seleccionada. Comentas que lograste hacerlo yo requiero lo mismo te agradezco de antemano  :D


Título: Re: Problema con funcion php y <option> seleccionada
Publicado por: [u]nsigned en 1 Noviembre 2012, 13:32 pm
Si prefieres hacerlo a 'la antigua' bien por vos, pero es mucho mas trabajo. Esto mismo con jQuery se hace en 4 lineas de codigo, y te olvidas de todo el tema cross-browser, etc...como ya te dijeron, mejor usa jQuery ;)

Saludos