Foros del Web » Programando para Internet » PHP »

Metodo POST + <area> <map>

Estas en el tema de Metodo POST + <area> <map> en el foro de PHP en Foros del Web. Buenas noches. Estoy creando una pagina, donde en el index esta una imagen de una escuela, la idea fue sacar las coordenadas de la imagen ...
  #1 (permalink)  
Antiguo 09/04/2010, 22:17
Avatar de SymarCs  
Fecha de Ingreso: abril-2010
Mensajes: 67
Antigüedad: 14 años
Puntos: 1
Metodo POST + <area> <map>

Buenas noches.

Estoy creando una pagina, donde en el index esta una imagen de una escuela, la idea fue sacar las coordenadas de la imagen para ponerle un link a cada edificio, para eso use <map>. Esto es como lo tengo (omitire las coordenadas y datos sin importancia).

...
<img src="URL" usemap="#Map"/>

<map name="Map" id="Map">
<area shape="poly" coords="coordendas" href="consultas.php" target="_self" title="Edificio Principal"/>

<map id="Map">
<area shape="poly" coords="coordendas" href="consultas.php" target="_self" title="Edificio A"/>


<map id="Map">
<area shape="poly" coords="coordendas" href="consultas.php" target="_self" title="Edificio B"/>
...

Lo que estoy buscando es hacer las consultas de una manera general, ya que lo que hago es hacerlas todas particulares, por ejemplo.

select * from personal where edificio="edificio_principal";

y mas bien lo que busco es algo como:

$edificio = $_POST['X'];
$sql='select * from personal where edificio='.$edificio;

Osea que estoy haciendo muchas consultas por separado, y lo que necesito es tener una general, pero no se que hacer ya que como estoy usando <map> <area .... href="consultas.php"> no se como pasarle una variable general, como si fuera un select.

Que me recomiendan.


---------------------------

Bueno despues de algunas pruebas eh decidido hacer lo siguiente:

Opte por utilizar el metodo GET y eh cambiado la url del mapa de imagen como sigue:

<map id="Map">
<area shape="poly" coords="coordendas" href="consultas.php?edificio=edificio_a" target="_self" title="Edificio B"/>

y en la pagina de consultas.php tengo:

...
$edificio=$_GET['edificio'];
...

Me funciona perfectamente, pero tengo la duda de si es correcto hacer esto o mejor sigo buscando otra manera. De todas formas me interesa si alguien sabe como hacer que funcione con el metodo POST.

Gracias.

Última edición por SymarCs; 09/04/2010 a las 23:53
  #2 (permalink)  
Antiguo 10/04/2010, 03:58
 
Fecha de Ingreso: diciembre-2009
Mensajes: 612
Antigüedad: 14 años, 4 meses
Puntos: 16
Respuesta: Metodo POST + <area> <map>

con post, se puede hacer igual

Prueba así

$edificio = $_POST['X'];
$sql="select * from personal where edificio='$edificio'";
  #3 (permalink)  
Antiguo 10/04/2010, 04:02
Avatar de Nemutagk
Colaborador
 
Fecha de Ingreso: marzo-2004
Ubicación: México
Mensajes: 2.633
Antigüedad: 20 años
Puntos: 406
Respuesta: Metodo POST + <area> <map>

Para la información que mandas esta correcto utilizar GET, POST es cuando necesitas enviar muchos mas datos (caracteres) ya que GET tiene un limite, pero en tu caso es mas que suficiente, si deseas en cambio enviar la petición como POST es necesario utilizar AJAX, pero como repito, en tu caso sería tener código innecesario y al final de cuentas seria lo mismo
__________________
Listo?, tendría que tener 60 puntos menos de IQ para considerarme listo!!!
-- Sheldon Cooper
http://twitter.com/nemutagk
PD: No contestaré temas vía mensaje personal =)
  #4 (permalink)  
Antiguo 12/04/2010, 12:22
Avatar de SymarCs  
Fecha de Ingreso: abril-2010
Mensajes: 67
Antigüedad: 14 años
Puntos: 1
Respuesta: Metodo POST + <area> <map>

Ok gracias, entonces mejor lo dejo asi, pero ahora estoy atorado en otra cosa.

En la imagen del index al darle click en los edificios le paso por URL el valor de cada edificio como entero 1,2,3,etc en eso ya no hay problema me muestra la informacion.

Cita:
<area shape="poly" coords="coordendas" href="consultas.php?edificio=1" target="_self" title="Edificio B"/>
Ahora se me ocurrio que al estar ya en la pagina consultas.php donde se muestran todo el personal que esta trabajando en dicho edificio, haya un partado (un input de tipo texto) para buscar por nombre o apellido da igual.

$sql = "select * from personal where edicio=".$edicio." AND nombre like '%".$nombre."%' OR apellido like '%".$apellido."%'";

Ahora el problema les explico, la consulta y el codigo lo quiero poner en la misma pagina (consultas.php, para no tener tantos scripts) lo que ahora no se como pasarle de nuevo el numero de edificio, para que mi URL quede algo asi

http://URL?edificio=1&nombre=pablo

Tengo mi forma asi:

<form method="get" action="consultas.php">
<input name="nombre" type="text" value="Buscar por nombre..." onclick="this.value=\'\'">
<input name="edificio" type="hidden" value="'.$edificio.'">
<input style="float:right clear:left overflow:hidden!important" type="submit" value="Buscar"></form>

(Aclaro que ese form lo meti dinamicamente con un include) Bueno, al darle click no me esta tomando el valor de $edificio, y en la URL solo me muestra:

http://URL?nombre=pablo&edificio=

al imprimir el valor de edificio siempre me manda un 0, que esta mal o como lo puedo hacer???

gracias por su valiosisimo tiempo.

Última edición por SymarCs; 12/04/2010 a las 12:30
  #5 (permalink)  
Antiguo 12/04/2010, 17:57
Avatar de Nemutagk
Colaborador
 
Fecha de Ingreso: marzo-2004
Ubicación: México
Mensajes: 2.633
Antigüedad: 20 años
Puntos: 406
Respuesta: Metodo POST + <area> <map>

Ah eso es muy fácil, solo agrega un campo hidden...
Código HTML:
Ver original
  1. <input type="hidden" id="edificio" name="edificio" value="<?php if (isset($_GET['edificio'])) { echo $_GET['edificio']; } ?>" />

Actualización....

No había visto que ya habías agregado el campo hidden, el problema es que la variable $edificio no se ve que la definas, PHP tiene la opción "magic quotes" la cual si esta activa puedes acceder a las variables GET directamente como lo estas haciendo tu, sin embargo en las ultimas versiones esta viene desactivada por seguridad, así que es necesario definir la variable de la siguiente forma "$edificio = $_GET['edificio'];"
__________________
Listo?, tendría que tener 60 puntos menos de IQ para considerarme listo!!!
-- Sheldon Cooper
http://twitter.com/nemutagk
PD: No contestaré temas vía mensaje personal =)

Etiquetas: metodo, post
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 14:30.