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>
/*
* 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();
}
/*
* 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'> </p>";
popup.setContent(note);
popup.open(map, this);
});
<?php endwhile; ?>
<?php endif; ?>
};