Récupérer valeur d'un select ajax

Daniel Delaplace Messages postés 2 Statut Membre -  
Zep3k!GnO Messages postés 2049 Statut Membre -
Bonjour,

je cherche à récupérer la valeur d'un <span> généré en ajax afin de l'intégrer dans ma base de donnée SQL. Il s'agit simplement d'une saisie d'un code postal, qui affiche un <select> avec un choix de ville (si pluralité). j'arrive à extraire une liste, "VilleVilleVille, mais pas la ville sélectionnée. Récompense promise... (j'ai 12 cousines) LOL
Blagues à part j'ai vraiment besoin d'aide, et étant imprimeur, je peut vous récompenser à juste valeur.

5 réponses

Zep3k!GnO Messages postés 2049 Statut Membre 200
 
Il faut voir comment est ton code, ton span a un id ? un nom ?
T'utilises un framework JS ?
0
Daniel Delaplace Messages postés 2 Statut Membre
 
Bonjour,

mon span et un id et voici le source


Page principale ==> ville.php

<?

$host="local host";
$login="utilisateur";
$password="mp";
$base="base";
mysql_connect($host,$login,$password) or die(mysql_error());
mysql_select_db($base);
//---- Fonction permettant de mettre tout en majuscule (y compris les accents)
function toutmajuscule($chaine){
$acc = array('ç','à','á','â','è','é','ê','ò','ó','ô','ù','ú','û','À','Á','Â','È','É','Ê','Ì','Í','Î','Ò','Ó','Ô','Ù','Ú','Û');
$sans = array('C','A','A','A','E','E','E','O','O','O','U','U','U','A','A','A','E','E','E','I','I','I','O','O','O','U','U','U');
$mot = str_replace($acc,$sans,$chaine);
return strtoupper($mot);
}
?>
<script type="text/javascript" src="http://www.petites.annonces.ici-ville.fr/js/swfobject.js"></script>
<script type="text/javascript" src="http://www.petites.annonces.ici-ville.fr/js/jquery-1.2.6.min.js"></script>
<script language="javascript" src="http://www.petites.annonces.ici-ville.fr/villes.js">
</script>
<script type="text/javascript">
function recup(){
var indexsite = document.getElementById('ville')
var region = indexsite.options[indexsite.selectedIndex].value
alert (region);
}
</script>

Code postal : <input type="text" size="5" length="5" maxlength="5" name="cp" value="" onKeyUp="afficheVille(this.size, this.value)"/>
<span id="listeville"></span>
<label>Ville ou code postal</label>
<input id="ville" type="hidden" name="ville" value="region"/>

<!-- dans cet input je voudrai retrouver la ville choisie dans le sélect -->


les js sont récupérables en cliquant sur les lien en mode "code source de la page"


et le source du fichier ajax_ville.php appelé par le ville.js


<?
$host="localhost";
$login="utilisateur";
$password="mp";
$base="base";
mysql_connect($host,$login,$password) or die(mysql_error());
mysql_select_db($base);

switch($_POST['action']) {

case 'affVille':
afficheVille();
break;

}

function afficheVille() {
$aff_ville = '<select name="ville" id="ville" onclick="recup()">';
$selville = mysql_query("SELECT nom FROM maps_ville WHERE cp='".$_POST['codepostal']."' ");
while($ville=mysql_fetch_array($selville)) {
$accent = "àáâãäåòóôõöøèéêëçìíîïùúûü";
$sansaccent = "ÀÁÂÃÄÅÒÓÔÕÖØÈÉÊËÇÌÍÎÏÙÚÛÜ";
$ville = strtr(utf8_encode($ville['nom']),$accent,$sansaccent);
$aff_ville .= '<option value="'.$ville.'" >'.strtoupper($ville).'</option>';
}
$aff_ville .= '</select>';

?>document.getElementById('listeville').innerHTML='<?=$aff_ville?>';<?
}
?>

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

je pense que tout y est, sinon daniel.delaplace@live.fr

donc, ce qui m'intéresse, c'est dans un premier temps de récupérer la ville choisie dans un input hiden (ou mieux un input text pour afficher un contrôle utilisateur) et éventuellement de récupérer les autres champs de la table SQL longitude et latitude pour de la géolocalisation.

Je fais 36 choses à la fois et je ne pige rien à javascript, n'ayant pas le temps de faire les bases. Mon deal tient toujours, (sauf pour les cousines...).

Amicalement,
0
Zep3k!GnO Messages postés 2049 Statut Membre 200
 
A ce que je vois en lisant le code,
déjà il y a un premier problème car ton input hidden a comme id="ville" et ton select que tu ajoute en Ajax a un id="ville". Du coup dans ta fonction recup(), il ne doit pas sélectionner le bon élément.
Je te conseille de changer le nom de l'id du select chargé en Ajax en mettant id="ville_selector".
Puis dans ta fonction JS : var indexsite = document.getElementById('ville_selector');

Sinon, une question, je vois que tu utilises Jquery, pourquoi n'utilises-tu pas les selecteur JQuery qui t'affranchissent de la comptabilité cross navigateur, du genre :
$('#ville_selector').val(); // récupère la valeur sélectionnée.

P.S: Pour les cousines, pas de pbs, je venais pas pour ça, mais la blague m'a fait sourire :)
0
Daniel DELAPLACE
 
Bonjour,

J'ai donc changé l'id du select et dans la fonction, et je récupère bien la valeur avec un alert, mais toujours pas dans mon input afin de pouvoir l'enregistrer dans ma base SQL, j'ai du louper un passage..., je ne comprends pas comment il faut s'y prendre, ce serait sympa de me donner la méthode, car j'ai fait des centaine d'essais pris sur des forums, mais sans résultats.

En ce qui concerne Jquery, je ne connais pas non plus, j'avais vu une syntaxe similaire, mais je n'avais pas non plus trouvé de solution.

Mon problème réside je pense tout simplement à transmettre la var Javascript en $champ PHP.

Merci de ton aide, et en ce qui concerne l'imprimerie, c'est avec plaisir que je suis à ta disposition pour te rendre un service.

En attendant, je retourne sur des forums pour essayer d'avoir plus d'explications et comprendre.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Zep3k!GnO Messages postés 2049 Statut Membre 200
 
Un fois la ville sélectionnée, tu veux la transmettre à PhP, mais par quel biais ? Ajax ou sumbit du formulaire ?
0