Foros del Web » Programando para Internet » PHP »

pasar valor de desplegable en html a php

Estas en el tema de pasar valor de desplegable en html a php en el foro de PHP en Foros del Web. Hola tengo un problema que no consigo resolver. Tengo una web que debe hacer una consulta a mi mysql dependiendo del resultado de un listado ...
  #1 (permalink)  
Antiguo 25/07/2012, 05:14
 
Fecha de Ingreso: enero-2012
Mensajes: 45
Antigüedad: 12 años, 10 meses
Puntos: 0
pasar valor de desplegable en html a php

Hola tengo un problema que no consigo resolver.

Tengo una web que debe hacer una consulta a mi mysql dependiendo del resultado de un listado desplegable creado en html.

el problema es que no se como sacar el valor del listado para poder hacer mi consulta sin usar el boton de enviar.

este es mi formulario
<form >
<label>Seleccione una oferta a consultar</label>
<select name="despliega" id="despliega" >

<option selected> selecciona consulta
<option value="ARE01">ARE01
<option value="ARE01">ARE01
<option value="ARE01">ARE01
</select>
</form>

y mi consulta
$sql = "SELECT jos_vm_orders.*, jos_vm_order_item.*, jos_vm_order_user_info.last_name, jos_vm_order_user_info.first_name, jos_vm_order_user_info.user_email, jos_vm_order_item.user_info_id, jos_vm_product.caducidad FROM jos_vm_order_user_info, jos_vm_product, jos_vm_orders, jos_vm_order_item WHERE jos_vm_order_user_info.user_id = jos_vm_orders.user_id AND jos_vm_order_item.user_info_id = jos_vm_orders.user_info_id AND jos_vm_order_item.order_item_sku=despliega";


alguien me puede ayudar???

Gracias
  #2 (permalink)  
Antiguo 25/07/2012, 05:19
 
Fecha de Ingreso: abril-2011
Mensajes: 103
Antigüedad: 13 años, 7 meses
Puntos: 3
Respuesta: pasar valor de desplegable en html a php

No soy muy entendido en el tema, pero creo que si no quieres usar el botón enviar, tendrías que utilizar un lenguaje de carga asíncrona como AJAX.

Con PHP tendrías que mandar una petición al servidor (a través del botón!) que te devolvería los datos de tu consulta.

Un saludo!
  #3 (permalink)  
Antiguo 25/07/2012, 06:10
 
Fecha de Ingreso: enero-2012
Mensajes: 45
Antigüedad: 12 años, 10 meses
Puntos: 0
Respuesta: pasar valor de desplegable en html a php

Alguien me podia poner algun ejemplo o link donde buscar, estoy pez en AJAX


Gracias
  #4 (permalink)  
Antiguo 25/07/2012, 06:55
 
Fecha de Ingreso: julio-2012
Ubicación: Girona
Mensajes: 63
Antigüedad: 12 años, 4 meses
Puntos: 10
Busqueda Respuesta: pasar valor de desplegable en html a php

Cita:
Iniciado por martin_sonia Ver Mensaje
Alguien me podia poner algun ejemplo o link donde buscar, estoy pez en AJAX


Gracias
Aquí te pongo un ejemplo, pero busca más información.

Tenemos varios archivos, uno hecho en javascript que ejecuta un código cuando se produce un evento determinado. (en tu caso, por ejemplo, cuando cambia la información del select)

Archivo javascript:
funciones.js
Código Javascript:
Ver original
  1. // JavaScript Document
  2. function nuevo_ajax()
  3. {
  4.     var xmlhttp=false;
  5.     try
  6.     {
  7.         xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
  8.     }
  9.     catch (e)
  10.     {
  11.         try
  12.         {
  13.             xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
  14.         }
  15.         catch (E)
  16.         {
  17.             xmlhttp = false;
  18.         }
  19.     }
  20.    
  21.     if (!xmlhttp && typeof XMLHttpRequest!='undefined')
  22.     {
  23.         xmlhttp = new XMLHttpRequest();
  24.     }
  25.     return xmlhttp;
  26. }
  27.  
  28. function buscar_datos()
  29. {
  30.     var id, contenedor;
  31.     contenedor = document.getElementById('resultado');
  32.        
  33.     id = document.getElementById('despliega').value;
  34.     ajax=nuevo_ajax();
  35.     ajax.open("GET", "fichero.php?id="+id,true);
  36.     ajax.onreadystatechange=function()
  37.     {
  38.         if (ajax.readyState==4)
  39.         {
  40.              contenedor.innerHTML = ajax.responseText;
  41.         }
  42.         ajax.send (null)
  43.     }
  44.     else
  45.     {
  46.         contenedor.innerHTML="";
  47.     }
  48. }

fichero.html
Tu código modificado:
Código HTML:
Ver original
  1. <form >
  2.  <label>Seleccione una oferta a consultar</label>
  3.  <select name="despliega" id="despliega" onchange="javascript:buscar_datos();" >
  4.  
  5. <option selected> selecciona consulta
  6.  <option value="ARE01">ARE01
  7.  <option value="ARE01">ARE01
  8.  <option value="ARE01">ARE01
  9.  </select>
  10.  </form>
  11. <div id="resultado">
  12. </div>

un tercer fichero en php que te genere la consulta (que es el que llamas desde ajax)
fichero.php
Código PHP:
Ver original
  1. include 'fichero_con_datos_conexion.php';
  2. $id=$_GET['id'];
  3. $sql = "SELECT jos_vm_orders.*, jos_vm_order_item.*, jos_vm_order_user_info.last_name, jos_vm_order_user_info.first_name, jos_vm_order_user_info.user_email, jos_vm_order_item.user_info_id, jos_vm_product.caducidad FROM jos_vm_order_user_info, jos_vm_product, jos_vm_orders, jos_vm_order_item WHERE jos_vm_order_user_info.user_id = jos_vm_orders.user_id AND jos_vm_order_item.user_info_id = jos_vm_orders.user_info_id AND jos_vm_order_item.order_item_sku=".$id;
  4.  
  5. $query=mysql_query($sql,$id_conexion);
  6. $datos='<table>';
  7. while($fila=mysql_fetch_array($query))
  8. {
  9.      //datos a tratar
  10.      $datos.='<tr><td>'.$fila['last_name'].'</td></tr>';
  11. }
  12. $datos.='</table>';
  13. echo $datos;

todo esto es una pincelada, te recomiendo que te busques un buen manual.

Saludos.
  #5 (permalink)  
Antiguo 25/07/2012, 11:25
 
Fecha de Ingreso: julio-2012
Mensajes: 138
Antigüedad: 12 años, 4 meses
Puntos: 4
Sonrisa Respuesta: pasar valor de desplegable en html a php

Hola, mira, yo tampoco se mucho de AJAX pero me dieron este link y creo que sera un buen comienzo, ademas tiene lo que tu pides.

http://www.formatoweb.com.ar/ajax/select_dependientes.php


Ahora, que si quieres hacer uso de PHP, puedes hacer esto:

Primero haces conexion con tu base de datos
Código PHP:
Ver original
  1. include('conf_base.php');
  2.                         $conexion = mysql_connect($base_huesped, $base_usuario, $base_password) or die (mysql_error());
  3.                        
  4.                         mysql_select_db($base_nombre, $conexion);
  5.                        
  6.                         @$mi_consulta = "aqui va tu consulta";
  7.                        
  8.                         @$resul = mysql_query($mi_consulta);


Código PHP:
Ver original
  1. <select name="[I]nombre de tu lista[/I]">
  2.         <option  value="">Selecciona</option>
  3.                            
  4.                             <!--Con este codigo php se pretende leer todos los datos del campo deseado y mostrarlos en la pagina-->
  5.                             <?php
  6.                             while($row = mysql_fetch_row($resul))
  7.                             echo "<option  value='".$result_row[0]."'>".$row[0]."</option>";
  8.                             ?>
  9.         </select>

Espero te sirva.

Última edición por Loop29; 25/07/2012 a las 11:34
  #6 (permalink)  
Antiguo 25/07/2012, 11:45
 
Fecha de Ingreso: enero-2011
Ubicación: DF
Mensajes: 898
Antigüedad: 13 años, 9 meses
Puntos: 155
Respuesta: pasar valor de desplegable en html a php

se que esta en ingles pero si se le capea se facilita mucho el asunto

http://community.xajaxproject.org/to...rop-down-menu/
__________________
No me interesan ni las gracias ni los karmas , pero si que se genere conocimiento, si se dio con la respuesta por favor confirmalo
  #7 (permalink)  
Antiguo 26/07/2012, 04:09
 
Fecha de Ingreso: enero-2012
Mensajes: 45
Antigüedad: 12 años, 10 meses
Puntos: 0
Respuesta: pasar valor de desplegable en html a php

Muchas gracias, me sirvio de ayuda, pero ahora tengo otro problema, abro otro tema

Etiquetas: desplegable, formulario, html, mysql, sql
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 22:08.