elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Rompecabezas de Bitcoin, Medio millón USD en premios


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web
| | |-+  PHP (Moderador: #!drvy)
| | | |-+  Problema con variables y AJAX !!
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] 2 Ir Abajo Respuesta Imprimir
Autor Tema: Problema con variables y AJAX !!  (Leído 5,099 veces)
Diabliyo


Desconectado Desconectado

Mensajes: 1.441


shell# _


Ver Perfil WWW
Problema con variables y AJAX !!
« en: 7 Agosto 2008, 01:38 am »

POST EDITADO (13 Agosto 08)
Hola:

Cierta parte de mi aplicacion trata de Agregar Productos a la BDD, para esto el formulario es cargado desde el mismo INDEX.PHP, de modo que parte importante del formulario es poder ubicar en una sección de alguna Categoria existente, he aqui donde entra la ayuda de AJAX.

Basicamente AJAX me ayudara a generar rapidamente (sin refrescar la hoja) un nuevo select en donde estaran las Secciones, para esto en el select de las Categorias colocare la funcion de ajax mediante onchange. Esto no me trae ningun problema, ya que una vez seleccionada la Categoria del select, inmediatamente se carga otro select con las Secciones correspondientes a dicha Categoria elejida.

El Problema surge al enviar el formulario (presionar el botn enviar), este boton realiza una accion del formulario enviando todo hacia la direccion index.php?id=productos&mov=agregar_producto, vaya esto ya es puro PHP, AJAX solo nos ayudo a generar el SELECT de Secciones, asi que, al momento de ir a agregar_producto, no logro recepcionar el contenido del select generado con ajax.

Basicamente aqui utilizo dos select que son: Categorias y Secciones, la variable donde porto el contenido de Categorias es categoria_productos y la variable donde porto las Secciones son: seccion_producto.

De modo que $_POST["seccion_producto"] no se genera o nose que sucede :S, pero no obtengo el valor de dicha variable.

Utilizo Gentoo Linux, Apache y Firefox-3.

Para una mejor ilustracion aqui dejo mi codigo resumido:

INDEX.PHP
Código
  1. <?php
  2. switch( $_GET["mov"] )
  3. {
  4. case 'agregar_producto':
  5. echo "Categoria: ". $_POST["categoria_producto"];
  6. echo "<br>sección: ". $_POST["seccion_producto"];
  7. echo "<br>POST: ". count($_POST);
  8. echo "<br>";
  9. print_f($_POST);
  10. break;
  11. default:
  12. echo "<form action=\"index.php?id=". $_GET["id"]. "&mov=agregar_producto\" method=\"POST\" enctype=\"multipart/form-data\">";
  13. echo "<div id=\"formulario_producto_nuevo\">";
  14. echo "Tipo de Prod.: <input type=\"radio\" name=\"tipo_producto\" value=\"1\" checked onclick=\"cargar_datos( 'id=". $_GET["id"]. "&mov=agregar_producto', 'formulario_producto_nuevo_lista', 'GET', '0' );\"> Normal";
  15. echo "<input type=\"radio\" name=\"tipo_producto\" value=\"2\" onclick=\"cargar_datos( 'id=". $_GET["id"]. "&mov=agregar_producto&ver=1', 'formulario_producto_nuevo_lista', 'GET', '0' );\">Kit<br>";
  16. echo "ID: <input type=\"text\" name=\"id_producto\"><br>";
  17. echo "Cantidad: <input type=\"text\" name=\"cantidad_producto\" style=\"width:50px;\"> ";
  18. echo "<select name=\"unidad_medida_producto\" style=\"width:120px;\">";
  19. echo "<option value=\"error\"></option>";
  20.  
  21. $cons= consultar_enorden( "UNIDADES_MEDIDA", "ID" );
  22. while( $buf= mysql_fetch_array($cons) )
  23. echo "<option>". $buf["NOMBRE"]. "/". $buf["NOTACION"]. "</option>";
  24. unset($buf);
  25. unset($cons);
  26. echo "</select>";
  27. echo "<br>";
  28. echo "Nombre del Prod.: <input type=\"text\" name=\"nombre_producto\"><br>";
  29. echo "Precio Publico: <input type=\"text\" name=\"preciopublico_producto\"><br>";
  30. echo "Categoria: <select name=\"categoria_producto\" onchange=\"cargar_datos( 'id=". $_GET["id"]. "&mov=mostrar_secciones&categoria_id='+this.value, 'mostrar_secciones', 'GET', '0' );\">";
  31. echo "<option value=\"error\"></option>";
  32.  
  33. $cons= consultar_enorden( "MENUS", "ID" );
  34. while( $buf= mysql_fetch_array($cons) )
  35. echo "<option value=\"". $buf["ID"]. "\">". $buf["NOMBRE"]. "</option>";
  36. unset($buf);
  37. unset($cons);
  38.  
  39. echo "</select>";
  40. echo "<div id=\"mostrar_secciones\"></div>";
  41. echo "Descripcion:<br>";
  42. echo "<textarea name=\"descripcion_producto\"></textarea><br>";
  43. echo "<span style=\"font-size:10px;\">Solo se permite adjuntar imagenes: <b>*.jpg</b>, <b>*.png</b> y <b>*.gif</b>.</span>";
  44. echo "<div id=\"formulario_producto_nuevo_imagenes\">";
  45. echo "<input type=\"file\" name=\"imagen_productos01\" style=\"font-size:9px;\">";
  46. echo "<input type=\"file\" name=\"imagen_productos02\" style=\"font-size:9px;\">";
  47. echo "</div>";
  48. echo "</div>";
  49.  
  50. echo "<div id=\"formulario_producto_nuevo_lista\">";
  51. echo "</div>";
  52. echo "<center>";
  53. echo "<input type=\"submit\" value=\"Guardar Producto\" style=\"text-align:center;border:solid 1px black;font-family:verdana;font-size:12px;font-weight:bold;\">";
  54. echo "</center>";
  55. echo "</form>";
  56. break;
  57. }
  58. ?>


AJAX.PHP
Código
  1. <?php
  2. /*####################################
  3. ###### MOSTRAR SECCIONES #####
  4. ## Muestra secciones en capa ##
  5. ######################################*/
  6. else if( !strcmp( $_GET["mov"], "mostrar_secciones") )
  7. {
  8. $xcons= consultar_con( "MENUS", "ID='". $_GET["categoria_id"]. "'" );
  9. $xbuf= mysql_fetch_array($xcons);
  10. unset($xcons);
  11. $cons_sec= consultar_enorden_con( "SECCIONES", "RELACION='". $xbuf["NOMBRE"]. "'", "ID" );
  12. unset($xbuf);
  13.  
  14. echo "Secciones: <select name=\"seccion_producto\">";
  15. echo "<option value=\"error\"></option>";
  16. while( $buf_sec= mysql_fetch_array($cons_sec) )
  17. echo "<option value=\"". $buf_sec["ID"]. "\">". $buf_sec["NOMBRE"]. "</option>";
  18. echo "</select>";
  19.  
  20. unset($buf_sec);
  21. unset($cons_sec);
  22. }
  23. ?>


SCRIPT.js
Código
  1. //Funcion para obtener conector AJAX
  2. function ajax()
  3. {
  4. var pagina=false; //conector ajax
  5.  
  6. if( window.XMLHttpRequest ) //Navegador Firefox
  7. pagina= new XMLHttpRequest(); //creamos objeto para el navegador
  8. else if( window.ActiveXObject ) //Navegador Internet Explorer
  9. {
  10. try //Version Actual
  11. {
  12. pagina= new ActiveXObject( "Msxml2.XMLHTTP" ); //creamos objeto para el navegador
  13. }
  14. catch(e) //version Antigua
  15. {
  16. try
  17. {
  18. pagina= new ActiveXObject( "Microsoft.XMLHTTP" ); //creamos objeto para el navegador
  19. }
  20. catch(e)
  21. {
  22. }
  23. }
  24. }
  25. return pagina;
  26. }
  27.  
  28. function cargar_datos( vars, capaview, flujoddatos, varsform )
  29. {
  30. var conector, capa, url;
  31.  
  32. url= 'ajax.php'; //mis funciones para ajax
  33. capa= document.getElementById(capaview);
  34.  
  35. conector= ajax();
  36. conector.open( flujoddatos, url+'?'+vars, true );
  37. conector.onreadystatechange= function()
  38. {
  39. if( conector.readyState==1 )
  40. {
  41. capa.innerHTML= "<center><img src='../admin/imagenes/loading.gif'><br><b>CARGANDO...</b></center>";
  42. }
  43. else if( conector.readyState==4 )
  44. {
  45. if( conector.status==200 )
  46. {
  47. if( varsform!=0 )
  48. conector.setRequestHeader( "Content-Type", "application/x-www-form-urlencoded" );
  49. capa.innerHTML= conector.responseText;
  50. }
  51. else if( conector.status==404 )
  52. {
  53. capa.innerHTML= "La pagina que intentas cargar no existe...";
  54. }
  55. else
  56. {
  57. capa.innerHTML= conector.status;
  58. }
  59. }
  60. }
  61. //conector.setRequestHeader( "Content-Type", "multipart/form-data" );
  62. if( varsform!=0 )
  63. {
  64. var myarr= varsform.split(':'); //dividimos
  65. var trama="";
  66. var i=0;
  67.  
  68. for( i=0; i<(myarr.length); i++ )
  69. {
  70. if( i>0 )
  71. trama += "&";
  72. trama += myarr[i]+"="+document.getElementById(myarr[i]).value;
  73. }
  74. alert(trama);
  75.  
  76. conector.setRequestHeader( "Content-Type", "application/x-www-form-urlencoded" );
  77. conector.send(trama);
  78. }
  79. else
  80. conector.send(null);
  81. }


« Última modificación: 13 Agosto 2008, 22:06 pm por Diabliyo » En línea

Freeze.


Desconectado Desconectado

Mensajes: 2.732



Ver Perfil WWW
Re: Problema con variables y AJAX !!
« Respuesta #1 en: 7 Agosto 2008, 01:44 am »

Mira esto a ver si te sirve:
http://www.formatoweb.com.ar/ajax/select_dependientes_3_niveles.php

Por cierto que yo quiero saber como obtener el value de un select o mejor dicho del option :P
No he podido me toco usar 'radio' en mi web :xD


En línea

Diabliyo


Desconectado Desconectado

Mensajes: 1.441


shell# _


Ver Perfil WWW
Re: Problema con variables y AJAX !!
« Respuesta #2 en: 12 Agosto 2008, 17:04 pm »

Mira esto a ver si te sirve:
http://www.formatoweb.com.ar/ajax/select_dependientes_3_niveles.php

Por cierto que yo quiero saber como obtener el value de un select o mejor dicho del option :P
No he podido me toco usar 'radio' en mi web :xD

Aqui tengo un ejemplo que SI funciona, vaya, que ilustra lo que quiero hacer en mi formulario, pero no lo logro :S !!...

Miren el codigo:

INDEX.PHP
Código
  1. <html>
  2.  
  3. <head>
  4.  
  5. <script src="funciones.js"></script>
  6.  
  7. <title>Documento sin t&iacute;tulo</title>
  8.  
  9. </head>
  10.  
  11.  
  12.  
  13. <body>
  14.  
  15. <form name="formulario" method="post" action="#">
  16.  
  17. <table>
  18.  
  19. <tr>
  20.  
  21. <td>Caracteres</td>
  22.  
  23. <td><select name="combo" onkeypress="tabular(event,this)" onchange="agregarCombo(this.value,'agregarCombo','akiEscriboAjax')">
  24.  
  25. <option value="">Select...</option>
  26.  
  27. <option value="Letras">Letras</option>
  28.  
  29. <option value="Numeros">Numeros</option>
  30.  
  31. </select></td>
  32.  
  33. </tr>
  34.  
  35. <tr>
  36.  
  37. <td><div id='akiEscriboAjax'></div></td>
  38.  
  39. </tr>
  40.  
  41. <tr>
  42.  
  43. <td><input name="enviar" type="submit" value=" Enviar" /></td>
  44.  
  45. </tr>
  46.  
  47. </table>
  48.  
  49. </form>
  50.  
  51.  
  52.  
  53. <?
  54.  
  55. if(isset($_POST['combo']))
  56.  
  57. {
  58.  
  59. echo "Variable Post creada con AJAX: ".$_POST["caracteres"];
  60.  
  61. }
  62.  
  63. ?>
  64.  
  65.  
  66.  
  67. </body>
  68.  
  69. </html>
  70.  

AJAX.PHP
Código
  1. <?
  2.  
  3.  
  4.  
  5. if($_GET['Id'] == 'agregarCombo')
  6.  
  7. {
  8.  
  9. if($_GET['caracter'] == 'Letras')
  10.  
  11. {
  12.  
  13. $array = array('a','b','c');
  14.  
  15. }
  16.  
  17. elseif($_GET['caracter'] == 'Numeros')
  18.  
  19. {
  20.  
  21. $array = array(1,2,3);
  22.  
  23. }
  24.  
  25.  
  26.  
  27. echo $_GET['caracter']." ";
  28.  
  29. echo "<select name='caracteres'>";
  30.  
  31. for ($i=0; $i<count($array); $i++)
  32.  
  33. {
  34.  
  35. echo "<option value='$array[$i]'>$array[$i]</option>";
  36.  
  37. }
  38.  
  39. echo "</select>";
  40.  
  41. }
  42.  
  43.  
  44.  
  45.  
  46.  
  47.  
  48.  
  49. ?>

SCRIPT.js
Código
  1. // javascript Document
  2.  
  3.  
  4.  
  5. var peticion = false;
  6.  
  7. var  testPasado = false;
  8.  
  9. try {
  10.  
  11.  peticion = new XMLHttpRequest();
  12.  
  13.  } catch (trymicrosoft) {
  14.  
  15.  try {
  16.  
  17.  peticion = new ActiveXObject("Msxml2.XMLHTTP");
  18.  
  19.  } catch (othermicrosoft) {
  20.  
  21.  try {
  22.  
  23.  peticion = new ActiveXObject("Microsoft.XMLHTTP");
  24.  
  25.  } catch (failed) {
  26.  
  27.  peticion = false;
  28.  
  29.  }
  30.  
  31.  }
  32.  
  33. }
  34.  
  35. if (!peticion)
  36.  
  37. alert("ERROR AL INICIALIZAR!");
  38.  
  39.  
  40.  
  41. function agregarCombo(caracter,Id,element)
  42.  
  43. {
  44.  
  45. element = document.getElementById(element)
  46.  
  47. var url = 'ajax.php?Id='+Id+'&caracter='+caracter;  //construimos la url definitiva
  48.  
  49.    peticion.open("GET", url);
  50.  
  51. peticion.onreadystatechange = function()
  52.  
  53. {
  54.  
  55.        if (peticion.readyState == 4)
  56.  
  57. {
  58.  
  59. element.innerHTML = peticion.responseText;
  60.  
  61.        }
  62.  
  63.    }  
  64.  
  65.   peticion.send(null);
  66.  
  67. }
  68.  
  69.  
En línea

alone-in-the-chat


Desconectado Desconectado

Mensajes: 587


Ver Perfil
Re: Problema con variables y AJAX !!
« Respuesta #3 en: 12 Agosto 2008, 17:32 pm »

Eh probado el segundo y funciona bien , puedes postear tu codigo.

El que utilizas tu , al que esta arriba le falta el archivo js.

Cosa que lo puedo chekar .


Saludos¡¡

En línea

Because maybe
You're gonna be the one that saves me
And after all
You're my wonderwall
d[n_n]b
Diabliyo


Desconectado Desconectado

Mensajes: 1.441


shell# _


Ver Perfil WWW
Re: Problema con variables y AJAX !!
« Respuesta #4 en: 12 Agosto 2008, 18:23 pm »

Eh probado el segundo y funciona bien , puedes postear tu codigo.

El que utilizas tu , al que esta arriba le falta el archivo js.

Cosa que lo puedo chekar .


Saludos¡¡



He editado el primer post agregando el scrip.js !! Porfavor miralo, gracias por tu atencion !!

bye bye
En línea

alone-in-the-chat


Desconectado Desconectado

Mensajes: 587


Ver Perfil
Re: Problema con variables y AJAX !!
« Respuesta #5 en: 12 Agosto 2008, 23:38 pm »

Lo eh revisado , solo modifique la parte como cargas los combos (no use una bd , coloque valores x defecto) y funciona de lo mas normal .

Recuerdo que en una oportunidad me paso algo asi , agregaba campos a un form mediante ajax , y luego al enviar el form estos no pasaban , creo que esto va por un tema de browsers lo eh probado en firefox 2.0 y en el IE 6.0 para linux y me va bien.

No eh probado en ie7 ni en el ie6 de windows .

Como te digo a mi me va bien , lo tienes en linea? .
Que browser usas?.

Tal vez si me agregas al gmail podamos ver mejor el problema.

Saludos¡¡


En línea

Because maybe
You're gonna be the one that saves me
And after all
You're my wonderwall
d[n_n]b
Diabliyo


Desconectado Desconectado

Mensajes: 1.441


shell# _


Ver Perfil WWW
Re: Problema con variables y AJAX !!
« Respuesta #6 en: 13 Agosto 2008, 00:18 am »

Lo eh revisado , solo modifique la parte como cargas los combos (no use una bd , coloque valores x defecto) y funciona de lo mas normal .

Recuerdo que en una oportunidad me paso algo asi , agregaba campos a un form mediante ajax , y luego al enviar el form estos no pasaban , creo que esto va por un tema de browsers lo eh probado en firefox 2.0 y en el IE 6.0 para linux y me va bien.

No eh probado en ie7 ni en el ie6 de windows .

Como te digo a mi me va bien , lo tienes en linea? .
Que browser usas?.

Tal vez si me agregas al gmail podamos ver mejor el problema.

Saludos¡¡

Se te paso darme tu correo :S, o sera: alone-in-the-chat@gmail.com ??...

Regresando con el tema...

Entonces a tu te funciono de lo mas normal ??, pero weno, en tu caso usaste valores generados sin la BDD, pero weno, la vdd no he realizado asi la prueba ya que en mi caso pues me intersa consultar a la BDD para obtener los valores xD !! (ya que son muchos como para escirbirlos uno a uno).

Por otro lado, actualmente programo de forma local con Apache como Servidor HTTP, Firefox 3 como navegador y Gentoo Linux mi GNU/Linux.

 
En línea

Diabliyo


Desconectado Desconectado

Mensajes: 1.441


shell# _


Ver Perfil WWW
Re: Problema con variables y AJAX !!
« Respuesta #7 en: 13 Agosto 2008, 17:15 pm »

Ya realize la prueba armando el SELECT de AJAX sin consultar la BDD, realizando directamente la generacion de 3 options, y aun asi No se envia esa variable :S !!...

Aqui el code que modifique:

AJAX.PHP
Código
  1. <?php
  2. else if( !strcmp( $_GET["mov"], "mostrar_paises") )
  3. {
  4. echo "Paises: <select name=\"pais\">";
  5. echo "<option value=\"error\"></option>";
  6. echo "<option value=\"pais\">Pais</option>";
  7. echo "<option value=\"pais2\">Pais2</option>";
  8. echo "<option value=\"pais3\">Pais3</option>";
  9. echo "<option value=\"pais4\">Pais4</option>";
  10. echo "</select><br>";
  11. }
  12. ?>
« Última modificación: 13 Agosto 2008, 17:18 pm por Diabliyo » En línea

Diabliyo


Desconectado Desconectado

Mensajes: 1.441


shell# _


Ver Perfil WWW
Re: Problema con variables y AJAX !!
« Respuesta #8 en: 13 Agosto 2008, 22:07 pm »

He editado totalmente el post hoy 13 de agosto, para ver si se entiende y puedan ayudarme un poco mas con mi problea...

bye bye
En línea

Diabliyo


Desconectado Desconectado

Mensajes: 1.441


shell# _


Ver Perfil WWW
Re: Problema con variables y AJAX !!
« Respuesta #9 en: 19 Agosto 2008, 21:01 pm »

He editado totalmente el post hoy 13 de agosto, para ver si se entiende y puedan ayudarme un poco mas con mi problea...

bye bye

Aun no lo consigo :S !!... Sigo atorado en esto de obtener el valor de un SELECT creado con AJAX :S !!... Ya he realizado ejemplos sencillos y estos si funcionan pero el codigo del formulario que tengo no funciona esa parte :S !!...

bye bye
En línea

Páginas: [1] 2 Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
[Ayuda] Menudo lio con AJAX entre javascript y PHP, paso de variables
PHP
Graphixx 0 2,785 Último mensaje 9 Abril 2012, 18:09 pm
por Graphixx
Duda variables de sesion y Ajax
Desarrollo Web
painkillerpucela 1 2,874 Último mensaje 30 Julio 2012, 09:13 am
por sexto
Evitar mandar variables por URL y redireccionamiento, se usa AJAX??
PHP
valago 3 5,292 Último mensaje 26 Octubre 2012, 09:44 am
por valago
problema con funcion ajax
Desarrollo Web
fvskate02 2 2,428 Último mensaje 19 Enero 2013, 12:23 pm
por #!drvy
Ajax y Variables POST
Desarrollo Web
spysecurityca 4 2,520 Último mensaje 7 Agosto 2014, 10:38 am
por ivancea96
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines