11550 sujets

JavaScript, DOM et API Web HTML5

bonjour,

j'ai récupéré dans une variable la concaténation de ville,cp,lon,lat pour ensuite éclater tout ça et calculer des distances entre 2 villes.
La personne tape les premières lettres de la ville et retrouve dans le select les villes proposées + dep, longitude et latitude. J'aimerais que ne soient affichés que la ville et le code postal. longitude et latitude sont récupérés dans des input hidden.
je ne sais pas si c'est possible. mais merci d'avance.

pour l'instant j'en suis là : tout s'affiche (ville-cp-lon-lat):

[code=javascript]
function completionVilleb(value) { 
    //alert(value);
    $.post('villesbville.php', { cpb : value },
    function success(data){
        
        var the_option = data.split('/')
		   
        if(the_option.length > 0){
            for(i = 0; i < the_option.length; i++){
                document.forms['the_form'].villeb.options[i] = new Option(the_option[i],the_option[i]);
            }
        }
        else{
            document.forms['the_form'].villeb.options[0] = new Option(data,data);

        }

     });
}



dans le formulaire :
[/code]

	    <td><div align="right" class="margin3"><span class="bodyText style7">*</span><label for="objet">Ville :</label></div></td>
		<td><input type="text" size="20"  maxlength="20" name="cpb" onkeyup="completionVilleb(this.value);" /></td>
	  </tr>
		<tr><td></td>
		<td>
        <!--<option value="">Choix</option>-->
		<select name="villecp2" id="villeb" >
		<?php
		$infoVille = explode('*',$villeb);
		$villeCp = $infoVille[0];
		$villeCpLonLat = $infoVille[0].$infoVille[1].$infoVille[2];
		?>
		<option value="<?php echo $villeCpLonLat; ?>"><?php echo $villeCp; ?></option>
		</select>

		</td>


et le php pour récupérer ville-cp-longitude-latitude :
[code=php]
<? 
session_start();
//déclaration bdd
include("config.php");

if(isset($_POST['cpb'])){
    $selectb = mysql_query("SELECT ville FROM maps_ville WHERE ville LIKE '".$_POST['cpb']."%"."'")or die(mysql_error());
	$selectzz = mysql_query("SELECT CONCAT(ville,tiret,tiret,LEFT(cp,2)) FROM maps_ville WHERE ville LIKE '".$_POST['cpb']."%"."'")or die(mysql_error());
	$select2b = mysql_query("SELECT CONCAT(ville,tiret,LEFT(cp,2),etoile,lon,slashe,lat) FROM maps_ville WHERE ville LIKE '".$_POST['cpb']."%"."'")or die(mysql_error());
	$select3b = mysql_query("SELECT lat,lon FROM maps_ville WHERE ville LIKE '".$_POST['cpb']."%"."'")or die(mysql_error());
    $option = '';
	$option3b = '';
    while($query = mysql_fetch_assoc($select2b)){
	$accent = "àáâãäåòóôõöøèéêëçìíîïùúûü";
    $sansaccent = "ÀÁÂÃÄÅÒÓÔÕÖØÈÉÊËÇÌÍÎÏÙÚÛÜ";
        if(empty($option)){
          //  $optionb = ucfirst(strtolower($query['CONCAT(ville,tiret,LEFT(cp,2))']));
			$option = strtr(utf8_encode($query['CONCAT(ville,tiret,LEFT(cp,2),etoile,lon,slashe,lat)']),$sansaccent,$accent);
		//	$optionb = ucfirst(strtolower($query['CONCAT(ville,tiret,LEFT(cp,2),etoile,lon,slashe,lat)']));
        }
        else{
        //    $optionb = $optionb.'/'.ucfirst(strtolower($query['CONCAT(ville,tiret,LEFT(cp,2))']));
			$option = $option.'/'.strtr(utf8_encode($query['CONCAT(ville,tiret,LEFT(cp,2),etoile,lon,slashe,lat)']),$sansaccent,$accent);  
		//	$optionb = $optionb.'/'.ucfirst(strtolower($query['CONCAT(ville,tiret,LEFT(cp,2),etoile,lon,slashe,lat)']));
        }
    }
    echo $option; 
    //echo ucfirst(strtolower($query['Ville']));
}
?>
 <?
//fermeture
mysql_close();
?>
[/i][/i][/i]
et le php pour récupérer ville-cp-lon-lat ...

<? 
session_start();
//déclaration bdd
include("config.php");

if(isset($_POST['cpb'])){
    $selectb = mysql_query("SELECT ville FROM maps_ville WHERE ville LIKE '".$_POST['cpb']."%"."'")or die(mysql_error());
	$selectzz = mysql_query("SELECT CONCAT(ville,tiret,tiret,LEFT(cp,2)) FROM maps_ville WHERE ville LIKE '".$_POST['cpb']."%"."'")or die(mysql_error());
	$select2b = mysql_query("SELECT CONCAT(ville,tiret,LEFT(cp,2),etoile,lon,slashe,lat) FROM maps_ville WHERE ville LIKE '".$_POST['cpb']."%"."'")or die(mysql_error());
	$select3b = mysql_query("SELECT lat,lon FROM maps_ville WHERE ville LIKE '".$_POST['cpb']."%"."'")or die(mysql_error());
    $option = '';
	$option3b = '';
    while($query = mysql_fetch_assoc($select2b)){
	$accent = "àáâãäåòóôõöøèéêëçìíîïùúûü";
    $sansaccent = "ÀÁÂÃÄÅÒÓÔÕÖØÈÉÊËÇÌÍÎÏÙÚÛÜ";
        if(empty($option)){
          //  $optionb = ucfirst(strtolower($query['CONCAT(ville,tiret,LEFT(cp,2))']));
			$option = strtr(utf8_encode($query['CONCAT(ville,tiret,LEFT(cp,2),etoile,lon,slashe,lat)']),$sansaccent,$accent);
		//	$optionb = ucfirst(strtolower($query['CONCAT(ville,tiret,LEFT(cp,2),etoile,lon,slashe,lat)']));
        }
        else{
        //    $optionb = $optionb.'/'.ucfirst(strtolower($query['CONCAT(ville,tiret,LEFT(cp,2))']));
			$option = $option.'/'.strtr(utf8_encode($query['CONCAT(ville,tiret,LEFT(cp,2),etoile,lon,slashe,lat)']),$sansaccent,$accent);  
		//	$optionb = $optionb.'/'.ucfirst(strtolower($query['CONCAT(ville,tiret,LEFT(cp,2),etoile,lon,slashe,lat)']));
        }
    }
    echo $option; 
    //echo ucfirst(strtolower($query['Ville']));
}
?>
 <?
//fermeture
mysql_close();
?>
[code=php]

Modifié par deneb (07 Dec 2010 - 13:47)