Ver Mensaje Individual
  #1 (permalink)  
Antiguo 04/04/2012, 19:41
Avatar de efenollal
efenollal
 
Fecha de Ingreso: abril-2012
Ubicación: Toa Baja
Mensajes: 63
Antigüedad: 12 años, 7 meses
Puntos: 3
Pregunta Filtrado de marcadores en Google Maps con checkbox PHP

Buenas:
Soy nuevo en el foro y aprendo PHP. Tengo un trabajo en donde hago un filtrado de puntos en un mapa Google Maps utilizando checkboxes. Tengo un campo llamado element en Mysql y otro llamado district y lo que quiero hacer es que cuando seleccione algun valor de element y seleccione algun valor de district aparezcan los puntos en el mapa que han sido llamados por element que sean filtrados por district. No se si me explique bien pero ahi les dejo parte del codigo.
Cualquier ayuda y/o sugerencia sera bienvenida.

index.php
/*
* asigno valores como array y condiciono variables para que el mapa no muestre
* marcadores sin seleccionar nada.
*/
Código:
$values = array();
if(!empty($_GET['element']) && is_array($_GET['element'])) {
	foreach($_GET['element'] as $v){
		$values[] = 'element[]=' . $v;
	}
}
$val = array();
if(!empty($_GET['district']) && is_array($_GET['district'])){
	foreach($_GET['district'] as $vv){
		$val[] = 'district[]=' . $vv;
	}
}
$elementString = ( !empty($_GET['element']) ) ? implode('" OR element = "', $_GET['element']) : '';
$districtString = ( !empty($_GET['district']) ) ? implode('" OR district = "', $_GET['district']) : '';
require_once('map.php');
Código HTML:
<!-- los checkbox que traen los elementos -->
 <form action="index.php" method="get"> 
		 <table border = '0'width = "90%px" color="#A9A9A9">
		 <tr>
			<td><input type="checkbox" id="CO" name="element[]" value = "CO"
			<?php echo(in_array('CO', $element)) ? "checked='checked'" : ''; ?> /> <label for="CO"><b>CO</b></label></td>           
			
			
			<td><input type="checkbox" id="IP" name="element[]" value = "IP"
			<?php echo (in_array('IP', $element)) ? "checked='checked'" : '';?>/> <label for="IP"><b>IP</b></label></td>
			
			
			<td><input type="checkbox" id="VRAD" name="element[]" value = "VRAD"
			<?php echo (in_array('VRAD', $element)) ? "checked='checked'" : ''; ?> /> <label for="VRAD"><b>VRAD</b></label></td>
			
				
			<td><input type="checkbox" id="DLC" name="element[]" value = "DLC"
			<?php echo (in_array('DLC', $element)) ? "checked='checked'" : ''; ?> /> <label for="DLC"><b>DLC</b></label></td>
			</tr>
			
<!-- algunos checkbox que traen los distritos -->
</table> 
map.php
/*
* hace la coneccion a la base de datos.
*/
Código PHP:
<?php
$element 
= (empty($_GET['element'])) ? array() : $_GET['element'];
$district = (empty($_GET['district'])) ? array() : $_GET['district'];
$i $element $district;
require_once(
'conn1.php');
ini_set('display_errors'1); 
ini_set('log_errors'1); 
ini_set('error_log'dirname(__FILE__) . '/error_log.txt'); 
error_reporting(E_ALL);
session_start();


mysql_select_db($db$conn) or die(mysql_error());
if(!empty(
$element)  || !empty($district)){
    
$sql 'SELECT * FROM locations WHERE element = "' implode('" OR element = "'$element) . '" 
            OR district = "' 
implode('" OR district = "'$district) . '"';
    
        
    
$result mysql_query($sql$conn) or die(mysql_error());
    
$row mysql_fetch_assoc($result);
    
$total_rows mysql_num_rows($result);
print_r($i);
}
else{
    
$result null;
    
$row = array();
    
$total_rows = array();
}
script.php
/*
* parte del codigo javascript y php para el mapa google.
*/

Código PHP:

<?php

$element 
= !empty($_GET['element']) ? $_GET['element'] : '';
$district = !empty($_GET['district']) ? $_GET['district'] : '';
require_once 
'map.php';
header('Content-Type: text/javascript; charset=utf-8;');
?>

 <?php 
     
if(is_resource($result)):
         while(
$row mysql_fetch_assoc($result)): ?>
             var image = new google.maps.MarkerImage(
             imagen['<?php echo $row['element'] || $row['district']; ?>'] 
             );
            
                
            var marker = new google.maps.Marker({
                position: new google.maps.LatLng('<?php echo $row['lat']; ?>', <?php echo $row['long']; ?>)
                , map: map
                , title:"<?php echo $row['element'];?>"
                , icon: imagen['<?php echo $row['element'];?>'].icon
            });
            
            google.maps.event.addListener(marker, 'click', function(){
            if(!popup){
                popup = new google.maps.InfoWindow();
            }
            var note = "<h2><?php echo $row['name'];?></h2>"
                    +"<p><b>Distrito:</b> <?php echo $row['district'];?></p>"
                    +"<p><b>Latitud:</b> <?php echo $row['lat'];?></p>"
                    +"<p><b>Longitud:</b> <?php echo $row['long']; ?></p>"
                    +"<p><b>Towncode:</b> <?php echo $row['towncode']; ?></p>"
                    +"<p><b>WC:</b> <?php echo $row['wc']; ?></p>"
                    +"<p><b>Localidad:</b> <?php echo htmlentities($row['description']); ?></p>"
                    + "<p class='marginTopPx'>&nbsp;</p>";
            popup.setContent(note);
            popup.open(map, this);
         });
         <?php endwhile; ?>
     <?php endif; ?>
      
};

Última edición por efenollal; 04/04/2012 a las 19:47