Foros del Web » Programando para Internet » PHP »

Como Soluciono el envió de variables PHP

Estas en el tema de Como Soluciono el envió de variables PHP en el foro de PHP en Foros del Web. Hola amigos estoy realizando una consulta a la base de datos pero tengo algunas dudas: tengo este formulario: Código HTML: <Div id=cuerpo style= "border-color:#000; border-style:groove; ...
  #1 (permalink)  
Antiguo 23/07/2013, 09:52
 
Fecha de Ingreso: febrero-2013
Ubicación: Bogota
Mensajes: 40
Antigüedad: 11 años, 1 mes
Puntos: 0
Como Soluciono el envió de variables PHP

Hola amigos estoy realizando una consulta a la base de datos pero tengo algunas dudas:

tengo este formulario:

Código HTML:
<Div id=cuerpo style="border-color:#000; border-style:groove; border-width:6px"> 


 
<table>
	<font face= "Verdana">
	<table border="2" bordercolor="#FF9900" width="700" align="center">
<!--<form method="POST" action="filtro.php">-->

<br><br>
<br>

<h2>Consultas </h2>
	
<tr> <th colspan="4">
		Elija la opción de visita a consultar<br>
</th></tr>
	
	<tr>
		<td>
		Numero de la visita
		</td>
											<td>
											<form name="forma1"  method="POST" action="consultas_formulario.php">
											<input type="Text" name="consultar" class="sampletext">
														<th colspan="2">
														<a href='consultas_formulario.php'>
														<input type="image" name="consultar" src="icons/zoom.png" border="none" width="20" height="20" />  
														</a>
														</th>
											</form>
											</td>
	</tr>

   <tr>    
		<td>
		Estado Oportunidad
		</td>
		<td>
	<form name="forma2"  method="POST" action="pruebas1.php">
			<select name="estop" class="sampletext"> 	
			<option value="Elige">--Selecciona una opción--</option>  
			<option value="Abierta">Abierta</option>
			<option value="Cerrada">Cerrada</option>
		
		</select>
<th colspan="2">
<a href='pruebas1.php'>
<input type="image" name="estop" src="icons/zoom.png" border="none" width="20" height="20" />  
</a>
</th>
		</form>
		</td>
	</tr> 
	
	
		<tr>
		<td>
  Área que realiza la acción :
		</td>
			<td>
		<form name="forma3"  method="POST" action="area1.php">
			<select name="area" class="sampletext"> 	
			<option value="Elegir">--Selecciona una opción--</option>  
			<option value="Construcción">Construcción</option>
			<option value="Consultoría">Consultoría</option>
			<option value="END">END</option>
			<option value="Industria">Industria</option>
			<option value="Pruebas y Ensayos">Pruebas y Ensayos</option>
			<option value="Redes Centro">Redes Centro</option>
			<option value="Redes Costa">Redes Costa</option>
			<option value="Seguridad Industrial">Seguridad Industrial</option>
			<option value="Telecomunicaciones">Telecomunicaciones</option>
			<option value="Velosi">Velosi</option>
			<option value="Pruebas y Ensayos">Pruebas y Ensayos</option>
			<option value="Desarrollo de negocios">Desarrollo de negocios</option>
			<option value="Gerencia General">Gerencia General</option>
			</select>
			<th colspan="2">
<a href='area1.php'>
<input type="image" name="area" src="icons/zoom.png" border="none" width="20" height="20" />  
</a>
</th>
		</form
			</td>
		</tr>

<tr>
		<td>
  Sector del cliente :
		</td>
			<td>	
			<form name="forma5"  method="POST" action="area_cli1.php">
			<select name="area1" class="sampletext"> 	
			<option value="Elegir">--Selecciona una opción--</option>  
			<option value="1. Power Generación">1. Power Generación</option>
			<option value="2. Power Distribución ">2. Power Distribución </option>
			<option value="3. Power Comercialización">3. Power Comercialización</option>
			<option value="4. Energías Renovables">4. Energías Renovables</option>
			<option value="5. Aguas">5. Aguas</option>
			<option value="6. Oil & Gas">6. Oil & Gas</option>
			<option value="7. Minería">7. Minería</option>
			<option value="8.  Industria">8.  Industria</option>
			<option value="9. Infraestructura (carreteras, FFCC, puertos, aerop)">9. Infraestructura (carreteras, FFCC, puertos, aerop)</option>
			<option value="10. Ingeniería, Montaje y Mantenimiento">10. Ingeniería, Montaje y Mantenimiento</option>
			<option value="11. Telecomunicaciones">11. Telecomunicaciones</option>
			<option value="12. Servicios (Salud, Educación, Turismo, Ocio y Cultura, Serv ">12. Servicios (Salud, Educación, Turismo, Ocio y Cultura, Serv </option>
			<option value="13. Administraciones Públicas">13. Administraciones Públicas</option>
			<option value="14. Aeronáutico, Naval y Defensa">14. Aeronáutico, Naval y Defensa</option>
			</select>
						<th colspan="2">
<a href='area_cli1.php'>
<input type="image" name="enviar1" src="icons/zoom.png" border="none" width="20" height="20" />  
</a>
</th>
		
		</form>
			</td>
		</tr>
		
		
		
		
	
		<tr>
		<td>
		Asistentes : <br>
		</td>
		<td>
		<form name="forma6"  method="POST" action="asist.php">
		<input type="Text" name="asis" class="sampletext">
		
								<th colspan="2">
<a href='asist.php'>
<input type="image" name="enviar1" src="icons/zoom.png" border="none" width="20" height="20" />  
</a>
</th>
		
		

		</form>
		</td>
	</tr>
	
	
	<tr>
	<form name="forma6"  method="POST" action="oferta1.php">
		<td>  Se genero una oferta : 		</td>
			<td>
			Si  **:
			<input type="radio" name="gen" value="Si"><br>
			No*  :
			<input type="radio" name="gen" value="No"><br>
			
											<th colspan="2">
<a href='oferta1.php'>
<input type="image" name="enviar1" src="icons/zoom.png" border="none" width="20" height="20" />  
</a>
</th>
				
	</form>
			</td>
	</tr>
	
	<tr>
	<form name="forma7"  method="POST" action="accion1.php">
			<td>  Accion a realizar : 		</td>
			<td>
			<input type="Text" name="acc" class="sampletext">
			</td>
														<th colspan="2">
<a href='accion1.php'>
<input type="image" name="enviar1" src="icons/zoom.png" border="none" width="20" height="20" />  
</a>
</th>
			
			
	</form>
	</tr>
	


<tr>  
<th colspan="2"><input type="Submit" name="enviar" align="center" value="Consultar" class="button orange small"></th> 

</tr>   

<!--</form> -->
	</table>
	</font>
	</td>

</table>

	<br>
		<div align=\'center\'><p>
			<font face='Verdana'>
			<table>
			<td>
			<a href='menu_visita.html'><img src="icons/arrow_left.png" width="30" height="30"><br>Volver</a>
			</td>
			<td>
			<a href='index_admin1.php'><img src="icons/house.png" width="30" height="30"><br>Menu</a>
			</td>
			</table>
			</font>
		</div>
	</Div> 

Como pueden ver cada item tiene un form diferente y cada uno consulta bien lo que se solicita pero ahora quiero consultar varias cosas pero no se pueden hacer form anidados, o si se pueden pero causan problemas, que solución me sugieren, ya que cada form envía un único valor; y para hacer una consulta de varios campos tendría que enviar varias variables; como lo organizo??? o como puedo generar ese tipo de consultas.
Muchas gracias.
  #2 (permalink)  
Antiguo 23/07/2013, 10:01
 
Fecha de Ingreso: marzo-2013
Ubicación: Cali
Mensajes: 12
Antigüedad: 11 años, 1 mes
Puntos: 0
Exclamación Respuesta: Como Soluciono el envió de variables PHP

Si deseas enviar cada FORM por separado pero al tiempo, entonces deberías usar AJAX, de lo contrario una solución sería hacer 1 solo formulario y en PHP validar la existencia o nó de los campos que no se utilizaron por ejemplo:

Código:
if($_POST['var1']=='asd'){
  //funcion para este campo.
}

if($_POST['var2']==''){
  //esto quiere decir que no se envió nada.
}
  #3 (permalink)  
Antiguo 23/07/2013, 10:12
Avatar de herran1212  
Fecha de Ingreso: julio-2013
Ubicación: cali
Mensajes: 89
Antigüedad: 10 años, 9 meses
Puntos: 3
Respuesta: Como Soluciono el envió de variables PHP

tendrias que capturar los formularios con javascript usando document.forms[] y hay le das el manejo que necesites
  #4 (permalink)  
Antiguo 23/07/2013, 14:10
 
Fecha de Ingreso: febrero-2013
Ubicación: Bogota
Mensajes: 40
Antigüedad: 11 años, 1 mes
Puntos: 0
Respuesta: Como Soluciono el envió de variables PHP

No se usar AJAX y para el JavaScript no soy muy bueno, debe haber una forma en php para hacerlo, no quiero JavaScript ya que es posible que lo deshabiliten.?

No entiendo muy bien la lógica de esto
Cita:
Código: if($_POST['var1']=='asd'){
//funcion para este campo.
}

if($_POST['var2']==''){
//esto quiere decir que no se envió nada.
}
o sea que debo crear un if para todos los valores enviados y dependiendo esto combino los valores para consultarlos???
  #5 (permalink)  
Antiguo 23/07/2013, 14:21
Avatar de Italico76  
Fecha de Ingreso: abril-2007
Mensajes: 3.303
Antigüedad: 17 años
Puntos: 292
Respuesta: Como Soluciono el envió de variables PHP

Anidar FORMS esta descartado, lo que debes hacer es hacer UN SOLO FORM con todos los elementos que quieras

Como te dicen... logicamente todo terminará en un mismo .php que recibira toda esa informacion pero no veo el problema


Si son consultas sobre tablas distintas cual es el problema de hacerlas con los datos que necesitas de $_POST ? sino quieres enredarte pues nombra los NAME de los elementos con una nomenclatura como usr_algo (seran consultados en 'usuarios) .. pais_algo (consulta en tabla paises) ... etc donde algo seria cualquier elemento de formulario
__________________
Salu2!
  #6 (permalink)  
Antiguo 23/07/2013, 15:44
 
Fecha de Ingreso: febrero-2013
Ubicación: Bogota
Mensajes: 40
Antigüedad: 11 años, 1 mes
Puntos: 0
Respuesta: Como Soluciono el envió de variables PHP

Mira recorte el código para que sea mas entendible y reformule mi pregunta así:

Este es el formulario
Código HTML:
<!DOCTYPE html PUBLIC "-//w3c//DTD XHTML 1.0 Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
</head>

<body>
<div align="center">

<Div id=cuerpo style="border-color:#000; border-style:groove; border-width:6px"> 

	<font face= "Verdana">
	<table border="2" bordercolor="#FF9900" width="700" align="center">
<form name="forma" method="POST" action="consultas_formulario1.php">
<tr> <th colspan="4">
Elija la opción de visita a consultar<br>
</th></tr>
	
		<tr>
		<td>
		Numero de la visita
		</td>
		<td>
		<input type="Text" name="consultar" class="sampletext">
				
		</td>
		</tr>

		<tr>    
		<td>
		Estado Oportunidad
		</td>
		<td>
		<select name="estop" class="sampletext"> 	
		<option value="Elige">--Selecciona una opción--</option>  
		<option value="Abierta">Abierta</option>
		<option value="Cerrada">Cerrada</option>
		</select>

		</td>
		</tr> 

		<tr>
		<td>
		Área que realiza la acción :
		</td>
		<td>
		<select name="area" class="sampletext"> 	
		<option value="Elegir">--Selecciona una opción--</option>  
		<option value="Construcción">Construcción</option>
		<option value="Consultoría">Consultoría</option>
		<option value="END">END</option>
		<option value="Industria">Industria</option>
		<option value="Pruebas y Ensayos">Pruebas y Ensayos</option>
		<option value="Redes Centro">Redes Centro</option>
		<option value="Redes Costa">Redes Costa</option>
		<option value="Seguridad Industrial">Seguridad Industrial</option>
		<option value="Telecomunicaciones">Telecomunicaciones</option>
		<option value="Velosi">Velosi</option>
		<option value="Pruebas y Ensayos">Pruebas y Ensayos</option>
		<option value="Desarrollo de negocios">Desarrollo de negocios</option>
		<option value="Gerencia General">Gerencia General</option>
		</select>

		</td>
		</tr>
	

		<tr>
		<td>
		Sector del cliente :
		</td>
		<td>	
		<select name="area1" class="sampletext"> 	
		<option value="Elegir">--Selecciona una opción--</option>  
		<option value="1. Power Generación">1. Power Generación</option>
		<option value="2. Power Distribución ">2. Power Distribución </option>
		<option value="3. Power Comercialización">3. Power Comercialización</option>
		<option value="4. Energías Renovables">4. Energías Renovables</option>
		<option value="5. Aguas">5. Aguas</option>
		<option value="6. Oil & Gas">6. Oil & Gas</option>
		<option value="7. Minería">7. Minería</option>
		<option value="8.  Industria">8.  Industria</option>
		<option value="9. Infraestructura (carreteras, FFCC, puertos, aerop)">9. Infraestructura (carreteras, FFCC, puertos, aerop)</option>
		<option value="10. Ingeniería, Montaje y Mantenimiento">10. Ingeniería, Montaje y Mantenimiento</option>
		<option value="11. Telecomunicaciones">11. Telecomunicaciones</option>
		<option value="12. Servicios (Salud, Educación, Turismo, Ocio y Cultura, Serv ">12. Servicios (Salud, Educación, Turismo, Ocio y Cultura, Serv </option>
		<option value="13. Administraciones Públicas">13. Administraciones Públicas</option>
		<option value="14. Aeronáutico, Naval y Defensa">14. Aeronáutico, Naval y Defensa</option>
		</select>

		</td>
		</tr>
		
				
		<tr>
		<td>
		Asistentes : <br>
		</td>
		<td>
		<input type="Text" name="asis" class="sampletext">

		</td>
		</tr>
	
			
		<tr>
		<td>  Se genero una oferta : 		</td>
		<td>
		Si  **:
		<input type="radio" name="gen" value="Si"><br>
		No*  :
		<input type="radio" name="gen" value="No"><br>

		</td>
		</tr>
					
		<tr>
		<td>  Accion a realizar : 		</td>
		<td>
		<input type="Text" name="acc" class="sampletext">
		</td>

		</tr>
	

<tr>  
<th colspan="2"><input type="Submit" name="enviar" align="center" value="Consultar" ></th> 
</tr>   
</form>
</table>
</font>
</td>

</Div>

</body>
</html> 
Ahora los recibo en este php
Código PHP:
<?php
$v1 
=$_POST['consultar'];
$v2 =$_POST['estop'];
$v3=$_POST['area'];
$v4 =$_POST['area1'];
$v5=$_POST['asis'];
$v6 =$_POST['gen'];
$v7 =$_POST['acc'];

?>

Hasta ahora todo bien, envía todos los valores bien. Mi pregunta seria como condiciono esta consulta:

si seleccionó al menos 1 elemento y lo envió que consulte solo ese elemento, pero si escogió 2 valores que envié esos 2 valores para la consulta, por que así como pueden escoger 1 elemento para consultar también pueden escoger 2 o llenar 2.
Mas o menos quisiera que fuera como esos formularios que tienen varios campos e independiente cual escoja si 1 o 2 o 3 elementos manda a hacer la consulta. He visto que estos formularios cada ítems tiene su botón de búsqueda al lado derecho para hacer la consulta de ese solo elemento.
Muchas Gracias y espero me puedan dar mas Ideas.
  #7 (permalink)  
Antiguo 23/07/2013, 16:49
Avatar de Italico76  
Fecha de Ingreso: abril-2007
Mensajes: 3.303
Antigüedad: 17 años
Puntos: 292
Respuesta: Como Soluciono el envió de variables PHP

Los campos vacios no entrarian en tus consultas ! primero que todo...... cambia eso:

Código PHP:
Ver original
  1. <?php
  2. $v1 = (isset($_POST['consultar']) ? $_POST['consultar'] : null);
  3. $v2 = (isset($_POST['estop']) ? $_POST['estop'] : null);
  4. //..


Antes de meter algo en una consulta verifica que no sea NULL la variable
__________________
Salu2!

Etiquetas: formularios, variables
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 17:47.