Lier deux select AJAX
Fermé
max30_3775
Messages postés
178
Date d'inscription
jeudi 4 novembre 2021
Statut
Membre
Dernière intervention
18 mars 2022
-
16 févr. 2022 à 13:54
max30 - 18 févr. 2022 à 12:46
max30 - 18 févr. 2022 à 12:46
A voir également:
- Lier deux select AJAX
- Please select boot device ✓ - Forum Windows
- Reboot and select proper boot device ✓ - Forum PC portable
- Reboot and select proper boot device or insert boot media in selected boot device and press a key ✓ - Forum Windows 10
- Reboot and Select proper Boot Device - Forum BIOS
- Problème reboot and select proper boot device + clavier - Forum PC fixe
17 réponses
jordane45
Messages postés
38242
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
2 octobre 2024
4 689
16 févr. 2022 à 14:06
16 févr. 2022 à 14:06
Le script Ajax ne doit pas appeler la page dans laquelle tu te trouves mais un fichier php à part, dans lequel tu code la récupération des données dans la base.
max30_3775
Messages postés
178
Date d'inscription
jeudi 4 novembre 2021
Statut
Membre
Dernière intervention
18 mars 2022
16 févr. 2022 à 14:29
16 févr. 2022 à 14:29
Bonjour Jordane,
j'ai séparé le script de la page du formulaire en l'ajoutant dans une page ajax.php, mais le deuxième select n'a pas changé:
j'ai séparé le script de la page du formulaire en l'ajoutant dans une page ajax.php, mais le deuxième select n'a pas changé:
<!DOCTYPE html> <html lang="fr"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title> <srcipt src='/jquery-3.6.0.js'> </script> <script> $(document).ready(function(){ $('#quartier').on('change'.function(){ var quartierID= $(this).val(); if(quartierID){ $.get( "formannonce.php", {quartier: quartierID}, function(data){ $('#sousquartier').html(data); } ); }else{ $('#sousquartier').html('<option>Select quartier First</option>') } }); }); </script> </head> <body> </body> </html>
jordane45
Messages postés
38242
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
2 octobre 2024
4 689
16 févr. 2022 à 15:07
16 févr. 2022 à 15:07
Comment se nomme la page sur laquelle tu as tes listes ?
Quel code html / JS as tu dedans ?
Comment se nomme le fichier PHP qui doit aller chercher les infos en BDD pour ta seconde liste ?
Quel code PHP ( et UNIQUEMENT PHP... ) s'y trouve ??
Quel code html / JS as tu dedans ?
Comment se nomme le fichier PHP qui doit aller chercher les infos en BDD pour ta seconde liste ?
Quel code PHP ( et UNIQUEMENT PHP... ) s'y trouve ??
max30_3775
Messages postés
178
Date d'inscription
jeudi 4 novembre 2021
Statut
Membre
Dernière intervention
18 mars 2022
16 févr. 2022 à 16:27
16 févr. 2022 à 16:27
La page où il y a les listes c'est la page du formulaire nommée formannonce.php: J'ai remis le script qui appelle le fichier ajax.php:
Côté Html, il y a le formulaire, et côté Js c'est l'affichage des div Si un select est choisi
Je pense que le fichier PHP qui doit aller chercher les infos en bdd est le suivant: ajax.php
<srcipt src='/jquery-3.6.0.js'> </script> <script> $(document).ready(function(){ $('#quartier').on('change'.function(){ var quartierID= $(this).val(); if(quartierID){ $.get( "ajax.php", {quartier: quartierID}, function(data){ $('#sousquartier').html(data); } ); }else{ $('#sousquartier').html('<option>Select quartier First</option>') } }); }); </script>
Côté Html, il y a le formulaire, et côté Js c'est l'affichage des div Si un select est choisi
Je pense que le fichier PHP qui doit aller chercher les infos en bdd est le suivant: ajax.php
<?php include "../cnx.php"; function getQuartier( $id_parent=0 ) { global $bdd; $sql_lang = (!empty(($_SESSION['lang']) && in_array($_SESSION['lang'], ['fr','en']) ))? $_SESSION['lang'] : 'fr'; // on s'assure que la langue est correcte $sql = "SELECT id, id_parent, quartier_".$sql_lang." AS qua FROM quartiers WHERE id_parent = :id_parent ORDER BY id "; try{ $req = $bdd->prepare($sql); $req->execute( array(':id_parent'=>$id_parent) ); $res = $req->fetchAll(PDO::FETCH_ASSOC); }catch(Exception $e){ echo "Erreur dans la requête " . $sql; $res = false; } return $res; } if(isset($_GET['quartier'])){ $sousquartiers = getQuartier( $quartiers[0]['id'] ); ?> <div id="d"> <span><label for="sousquartier"><?php echo $lang['quartier'];?>2</label></span> <br> <select id= "sousquartier" name="sousquartier"> <option value="" disabled selected><?php echo $lang['quartier'];?></option> <?php foreach($sousquartiers as $sq){ echo "<option value='".$sq['id']."'>".$sq['qua']."</option>"; } ?> </select> </div> <?php } ?>
jordane45
Messages postés
38242
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
2 octobre 2024
4 689
Modifié le 16 févr. 2022 à 16:46
Modifié le 16 févr. 2022 à 16:46
Bonjour,
Le fichjier Ajax.php ne doit contenir QUE DU PHP.
En gros
côté JS,
Il va falloir boucler sur la réponse de l'ajax
un truc du genre :
NB: Pense à regarder dans la console JS de ton navigateur ( en ayant pas activé le débugage de l'ajax ( XHR sous Firefoex )), ce qui s'affiche..
Le fichjier Ajax.php ne doit contenir QUE DU PHP.
En gros
<?php include "../cnx.php"; function getQuartier( $id_parent=0 ) { global $bdd; $sql_lang = (!empty(($_SESSION['lang']) && in_array($_SESSION['lang'], ['fr','en']) ))? $_SESSION['lang'] : 'fr'; // on s'assure que la langue est correcte $sql = "SELECT id, id_parent, quartier_".$sql_lang." AS qua FROM quartiers WHERE id_parent = :id_parent ORDER BY id "; try{ $req = $bdd->prepare($sql); $req->execute( array(':id_parent'=>$id_parent) ); $res = $req->fetchAll(PDO::FETCH_ASSOC); }catch(Exception $e){ echo "Erreur dans la requête " . $sql; $res = false; } return $res; } $q = !empty($_GET['quartier']) ? $_GET['quartier'] : NULL; if(isset($q)){ $sousquartiers = getQuartier( $q); echo json_encode( $sousquartiers ) ; exit; } ?>
côté JS,
Il va falloir boucler sur la réponse de l'ajax
un truc du genre :
if(quartierID){ $.getJSON("ajax.php",{quartier: quartierID}, function(result){ console.log('reponse ajax',result); $.each(result, function(i, el){ $("#sousquartier").append( "<option value=''"+el.id+"">"+el.qua+"</option>"); }); });
NB: Pense à regarder dans la console JS de ton navigateur ( en ayant pas activé le débugage de l'ajax ( XHR sous Firefoex )), ce qui s'affiche..
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
max30_3775
Messages postés
178
Date d'inscription
jeudi 4 novembre 2021
Statut
Membre
Dernière intervention
18 mars 2022
16 févr. 2022 à 17:55
16 févr. 2022 à 17:55
J'ai les erreurs suivantes dans la console:
1- Uncaught SyntaxError: missing ) after argument list
=> pour cette ligne:
2-Uncaught SyntaxError: Invalid regular expression: missing /
==> Pour cette ligne:
1- Uncaught SyntaxError: missing ) after argument list
=> pour cette ligne:
$('#quartier').on('change'.function(){
2-Uncaught SyntaxError: Invalid regular expression: missing /
==> Pour cette ligne:
$.each(result, function(i, el){ $("#sousquartier").append( "<option value=''"+el.id+"">"+el.qua+"</option>"); });
jordane45
Messages postés
38242
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
2 octobre 2024
4 689
16 févr. 2022 à 18:19
16 févr. 2022 à 18:19
Et tu ne vois pas comment corriger tout seul ??
Essaye ça
Essaye ça
if(quartierID){ $.getJSON("ajax.php",{quartier: quartierID}, function(result){ console.log('reponse ajax',result); $.each(result, function(i, el){ $("#sousquartier").append( "<option value='"+el.id+"'>"+el.qua+"</option>"); }); }); }
max30_3775
Messages postés
178
Date d'inscription
jeudi 4 novembre 2021
Statut
Membre
Dernière intervention
18 mars 2022
16 févr. 2022 à 19:13
16 févr. 2022 à 19:13
J'ai corrigé la première erreur, mais dans la console, il ne reste que celle là:
Uncaught ReferenceError: quartierID is not defined
=> cette ligne:
Uncaught ReferenceError: quartierID is not defined
=> cette ligne:
$.getJSON("ajax.php",{quartier: quartierID}, function(result){
jordane45
Messages postés
38242
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
2 octobre 2024
4 689
16 févr. 2022 à 19:15
16 févr. 2022 à 19:15
Montre-nous le code complet du fichier qui contient ton formulaire et ton code JavaScript
max30_3775
Messages postés
178
Date d'inscription
jeudi 4 novembre 2021
Statut
Membre
Dernière intervention
18 mars 2022
16 févr. 2022 à 19:26
16 févr. 2022 à 19:26
voici formannoncephp:
<?php session_start(); include "../cnx.php"; include '../langues/fb.php'; include "../header.php"; $villesm= getVilles(); ?> <html> <head> <meta charset="utf-8"> <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.0.0-beta3/css/all.min.css"> <script src='/jquery-3.6.0.js'> </script> <script> $(document).ready(function(){ $('#quartier').on('change',function(){ var quartierID= $(this).val(); if(quartierID){ $.get( "ajax.php", {quartier: quartierID}, function(data){ $('#sousquartier').html(data); } ); }else{ $('#sousquartier').html('<option>Select quartier First</option>') } }); }); </script> <div class= "pub"> <form action="" method="POST" enctype="multipart/form-data" id="search-form"> <div align= "center" class="container height-400 d-flex justify-content-center align-items-center"> <div class="card text-center"> <div class="py-4 p-2"> <div class="mt-3 d-flex flex-row justify-content-center"> <h5 style="font-size: 20px;"><?php echo $lang['infovendeur'];?></h5> <?php if(isset($_SESSION['id'])){ ?> <span> <label for= "pseudo"><?php echo $_SESSION['pseudo'];?></label> </span> <br> <?php } else {?> <span> <label for= "pseudo"><?php echo $lang['pseudo'];?></label> </span> <br> <input type="text" id="pseudo" name="pseudo" /> <button type="button" class="microform"><i class="fas fa-microphone"></i></button> <?php } ?> <br> <br> <?php if(isset($_SESSION['id'])){ ?> <span> <label for= "telephone"><?php echo $_SESSION['telephone'];?></label></span><br><br> <?php } else {?> <span><label for="telephone"><?php echo $lang['phoneclient'];?></label></span> <br> <input type="tel" id="phone" name="telephone"> <br> <br> <?php } ?> <?php if(isset($_SESSION['id'])){ ?> <span> <label for= "whatsapp"><?php echo $_SESSION['whatsapp'];?></label></span><br><br> <?php } else {?> <span><label for="whatsapp"><?php echo $lang['whatsapp'];?></label></span> <br> <input type="tel" id="whatsapp" name="whatsapp"> <br> <br> <?php } ?> <?php if(isset($_SESSION['id'])){ ?> <span><label for= "email"><?php echo $_SESSION['email'];?> </label> </span><br><br> <?php } else {?> <span><label for= "email"><?php echo $lang['emailclient'];?> </label></span><br> <input type="email" id="email" name="email" /> <br> <br> <br> <br> <?php } ?> </ul> </div> </div> </div> <div align= "center" class="container height-400 d-flex justify-content-center align-items-center"> <div class="card text-center"> <div class="py-4 p-2"> <div class="mt-3 d-flex flex-row justify-content-center"> <h5 style="font-size: 20px;"><?php echo $lang['infoannonce'];?></h5> <span> <label for="categorieannonce"><?php echo $lang['ca'];?></label></span> <br> <select id="typecategorie" onchange="choisirsup()" name="categorie" required> <option value="" disabled selected><?php echo $lang['categorie'];?></option> <?php // 1- on récupère les catégories principales $categories = getCategories( 0 ); // 0 : catégories principales (niveau 0) foreach($categories as $C) { // 2- on récupère les sous-catégories de CETTE catégorie $sous_categories = getCategories( $C['id'] ); // (sous-)catégories dont l'id_parent est $C['id'] // Si il n'y a pas de sous-catégories if( empty($sous_categories) ) { echo " <option value='".$C['id']."'>".$C['nom']."</option>"."\n"; // "\n" : passage à la ligne dans le code (lisibilité du code) } // Sinon (il y a des sous-catégories) else { echo " <optgroup label ='".$C['nom']."'> "."\n"; // 3 - affichage des sous-catégories foreach($sous_categories as $SC) { echo "<option value='".$SC['id']."'>".$SC['nom']."</option>"."\n"; } echo " </optgroup>"; } } ?> </select> <br> <br> <div id="piece"> <span> <label for= "chambre">Nombre de chambres</label></span> <br> <input type="number" id="chambre" name="chambre"> <br> <br> <span> <label for= "douche">Nombre de douches</label></span> <br> <input type="number" id="douche" name="douche"> <br> <br> </div> <div id="infosuperficie" <span><label for= "superficie"><?php echo $lang['superficie'];?></label></span> <br> <input type="number" id="superficie" name="superficie"> <br> <br> <span> <label for= "unite"><?php echo $lang['unite'];?></label></span> <br> <input type="radio" name="unite" value="m2"> m2 <br> <input type="radio" name="unite" value="ha">ha <br> <br> </div> <span><label for="villes"><?php echo $lang['ville'];?></label></span> <br> <select id="villes" onchange="choisirquart()" name="villes" required> <option value="" disabled selected><?php echo $lang['ville'];?></option> <?php foreach($villesm as $v){ echo "<option value='".$v['id']."'>".$v['ville']."</option>"; } ?> </select> <br> <br> <div id= "moughataa"> <span><label for="quartier"><?php echo $lang['quartier'];?></label></span> <br> <select id="quartier" onchange="choisirsous()" name="quartier"> <option value="" disabled selected><?php echo $lang['quartier'];?></option> <?php // 1- on récupère les quartiers principaux $quartiers = getQuartier( 0 ); // 0 : catégories principales (niveau 0) $sousquartiers = getQuartier( $quartiers[0]['id'] ); if($quartiers){ foreach($quartiers as $quart){ echo "<option value='".$quart['id']."'>".$quart['qua']."</option>"; } ?> </select> <br> <br> </div> <div id="d"> <span><label for="sousquartier"><?php echo $lang['quartier'];?>2</label></span> <br> <select id= "sousquartier" name="sousquartier"> <option value="" disabled selected><?php echo $lang['quartier'];?></option> <?php foreach($sousquartiers as $sq){ echo "<option value='".$sq['id']."'>".$sq['qua']."</option>"; } }//fin accolade if $quartiers ?> </select> </div> <br> <br> <span> <label for= "titre"><?php echo $lang['tva'];?></label></span><br> <input type="text" id="titre" name="titre"> <button type="button" class="microform"><i class="fas fa-microphone"></i></button> <br> <br> <span><label for= "description"><?php echo $lang['description'];?></label></span> <br> <textarea id="description" name="description" rows="4" cols="50"> </textarea> <br> <br> <br> <br> <span> <label for= "prix"><?php echo $lang['prix'];?></label></span> <br> <input type="number" id="prix" name="prix"> <br> <br> </ul> </div> </div> </div> <div align= "center" class="container height-400 d-flex justify-content-center align-items-center"> <div class="card text-center"> <div class="py-4 p-2"> <div class="mt-3 d-flex flex-row justify-content-center"> <h5 style="font-size: 20px;"><?php echo $lang['lesphotos'];?></h5> <span> <label for= "image"><?php echo $lang['photo1'];?></label></span> <input type="file" id="img1" name="img1" accept="image/png, image/jpeg, image/jpg" > <br><br> <span><label for= "image"><?php echo $lang['photo2'];?></label> </span> <input type="file" id="img2" name="img2" accept="image/png, image/jpeg, image/jpg"><br><br> <span><label for= "image"><?php echo $lang['photo3'];?></label></span> <input type="file" id="img3" name="img3" accept="image/png, image/jpeg, image/jpg"> <br><br> <span> <label for= "image"><?php echo $lang['photo4'];?></label></span> <input type="file" id="img4" name="img4" accept="image/png, image/jpeg, image/jpg"> <br><br> <span><label for= "image"><?php echo $lang['photo5'];?></label></span> <input type="file" id="img5" name="img5" accept="image/png, image/jpeg, image/jpg"> <br><br> <br> <br> <input type="submit" id='submit' name="formannonce" value='<?php echo $lang['valider'];?>' /> <br><br> </form> </ul> </div> </div> </div> <script> //rv const searchForm = document.querySelector("#search-form"); const searchFormInput = searchForm.querySelector("input"); // <=> document.querySelector("#search-form input"); const info = document.querySelector(".info"); // The speech recognition interface lives on the browser’s window object const SpeechRecognition = window.SpeechRecognition || window.webkitSpeechRecognition; // if none exists -> undefined if(SpeechRecognition) { console.log("Your Browser supports speech Recognition"); const recognition = new SpeechRecognition(); recognition.continuous = true; recognition.lang = "fr-FR"; const micBtn = searchForm.querySelector("button"); const micIcon = micBtn.firstElementChild; micBtn.addEventListener("click", micBtnClick); function micBtnClick(){ if(micIcon.classList.contains("fa-microphone")) { recognition.start(); } else { recognition.stop(); } } recognition.addEventListener("start", startSpeechRecognition); // <=> recognition.onstart = function(){...} function startSpeechRecognition(){ micIcon.classList.remove("fa-microphone"); micIcon.classList.add("fa-microphone-slash"); searchFormInput.focus(); console.log("Voice activated, SPEAK"); } recognition.addEventListener("end", endSpeechRecognition); // <=> recognition.onend = function(){...} function endSpeechRecognition(){ micIcon.classList.remove("fa-microphone-slash"); micIcon.classList.add("fa-microphone"); searchFormInput.focus(); console.log("Speech recognition service disconnected"); } recognition.addEventListener("result", resultOfSpeechRecognition); // <=> recognition.onresult = function(event) {...} - Fires when you stop talking function resultOfSpeechRecognition(event) { const current = event.resultIndex; const transcript = event.results[current][0].transcript; if(transcript.toLowerCase().trim()==="stop recording") { recognition.stop(); } else if(!searchFormInput.value) { searchFormInput.value = transcript; } else { if(transcript.toLowerCase().trim()==="go") { searchForm.submit(); } else if(transcript.toLowerCase().trim()==="reset input") { searchFormInput.value = ""; } else { searchFormInput.value = transcript; } } // searchFormInput.value = transcript; // searchFormInput.focus(); // setTimeout(() => { // searchForm.submit(); // }, 500); } info.textContent = 'Voice Commands: "stop recording", "reset input", "go"'; } else { console.log("Your Browser does not support speech Recognition"); info.textContent = "Your Browser does not support Speech Recognition"; } </script> <script> function choisirquart() { var sup= document.getElementById("typecategorie"); var city= document.getElementById("villes"); if((sup.value >=101 && sup.value <=106) && (city.value== 1)) { console.log('oui'); document.getElementById("moughataa").style.display="block"; } else{ console.log('non'); document.getElementById("moughataa").style.display="none"; } } </script> <script> function choisirsous() { var sous= document.getElementById("quartier"); if(sous.value >= 1 ) { console.log('yes'); document.getElementById("d").style.display="block"; } else{ console.log('no'); document.getElementById("d").style.display="none"; } } </script> <script> if(quartierID){ $.getJSON("ajax.php",{quartier: quartierID}, function(result){ console.log('reponse ajax',result); $.each(result, function(i, el){ $("#sousquartier").append( "<option value='"+el.id+"'>"+el.qua+"</option>"); }); }); } </script> <script> //select dynamique function choisirsup() { var sup= document.getElementById("typecategorie"); console.log(sup.value); if( (sup.value >=101 && sup.value <=106) || (sup.value >=501 && sup.value <=504)) { console.log('ok'); document.getElementById("infosuperficie").style.display="block"; } else{ console.log('ko'); document.getElementById("infosuperficie").style.display="none"; } /*if(sup.value>=501 && sup.value <=504) { document.getElementById("infosuperficie").style.visibility="visible"; } else{ document.getElementById("infosuperficie").style.visibility="hidden"; }*/ } </script> </body> </html>
max30_3775
Messages postés
178
Date d'inscription
jeudi 4 novembre 2021
Statut
Membre
Dernière intervention
18 mars 2022
16 févr. 2022 à 19:27
16 févr. 2022 à 19:27
Et voici ajax.php
<?php include "../cnx.php"; function getQuartier( $id_parent=0 ) { global $bdd; $sql_lang = (!empty(($_SESSION['lang']) && in_array($_SESSION['lang'], ['fr','en']) ))? $_SESSION['lang'] : 'fr'; // on s'assure que la langue est correcte $sql = "SELECT id, id_parent, quartier_".$sql_lang." AS qua FROM quartiers WHERE id_parent = :id_parent ORDER BY id "; try{ $req = $bdd->prepare($sql); $req->execute( array(':id_parent'=>$id_parent) ); $res = $req->fetchAll(PDO::FETCH_ASSOC); }catch(Exception $e){ echo "Erreur dans la requête " . $sql; $res = false; } return $res; } $q = !empty($_GET['quartier']) ? $_GET['quartier'] : NULL; if(isset($q)){ $sousquartiers = getQuartier( $q); echo json_encode( $sousquartiers ) ; exit; } ?>
jordane45
Messages postés
38242
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
2 octobre 2024
4 689
16 févr. 2022 à 19:57
16 févr. 2022 à 19:57
Il manque du code dans ton JavaScript.....
.
Je ne t'ai donné qu'une partie du code à modifier je ne t'ai pas dit de tout remplacer....
Il faudrait vraiment que tu essayes de comprendre à minimum ce que font les codes que l'on te donne au lieu de les copier-coller bêtement en faisant n'importe quoi
.
Je ne t'ai donné qu'une partie du code à modifier je ne t'ai pas dit de tout remplacer....
Il faudrait vraiment que tu essayes de comprendre à minimum ce que font les codes que l'on te donne au lieu de les copier-coller bêtement en faisant n'importe quoi
max30_3775
Messages postés
178
Date d'inscription
jeudi 4 novembre 2021
Statut
Membre
Dernière intervention
18 mars 2022
16 févr. 2022 à 22:33
16 févr. 2022 à 22:33
Si j'ai bien compris il fallait ajouter le code dans le
$(document).ready(function(){
max30_3775
Messages postés
178
Date d'inscription
jeudi 4 novembre 2021
Statut
Membre
Dernière intervention
18 mars 2022
16 févr. 2022 à 22:37
16 févr. 2022 à 22:37
En le faisant j'obtiens l'erreur suivante: Uncaught SyntaxError: Unexpected end of input
Depuis tout à l'heure j'essaie de mettre le code en message mais on m'affiche Access Denied
Depuis tout à l'heure j'essaie de mettre le code en message mais on m'affiche Access Denied
jordane45
Messages postés
38242
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
2 octobre 2024
4 689
16 févr. 2022 à 23:02
16 févr. 2022 à 23:02
Il te manque surtout
Et les accolades / parenthèses de fin qui vont avec bien entendu...
$('#quartier').on('change'.function(){ var quartierID= $(this).val();
Et les accolades / parenthèses de fin qui vont avec bien entendu...
max30_3775
Messages postés
178
Date d'inscription
jeudi 4 novembre 2021
Statut
Membre
Dernière intervention
18 mars 2022
16 févr. 2022 à 23:02
16 févr. 2022 à 23:02
max30_3775
Messages postés
178
Date d'inscription
jeudi 4 novembre 2021
Statut
Membre
Dernière intervention
18 mars 2022
16 févr. 2022 à 23:06
16 févr. 2022 à 23:06
La syntaxe n'est pas facile la première fois, et donc j'ignore si il y a une accolade ou une parenthèse qui manque
jordane45
Messages postés
38242
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
2 octobre 2024
4 689
>
max30_3775
Messages postés
178
Date d'inscription
jeudi 4 novembre 2021
Statut
Membre
Dernière intervention
18 mars 2022
16 févr. 2022 à 23:17
16 févr. 2022 à 23:17
Visiblement il manque une parenthèse et un point virgule sur ta dernière accolade.
max30_3775
Messages postés
178
Date d'inscription
jeudi 4 novembre 2021
Statut
Membre
Dernière intervention
18 mars 2022
Modifié le 16 févr. 2022 à 23:24
Modifié le 16 févr. 2022 à 23:24
En le faisant, c'est Uncaught SyntaxError: Unexpected token ')' qui s'affiche dans la console
Et en enlevant on retrouve la même erreur
$("#sousquartier").append( "<option value='"+el.id+"'>"+el.qua+"</option>"); }); }); });
Et en enlevant on retrouve la même erreur
jordane45
Messages postés
38242
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
2 octobre 2024
4 689
17 févr. 2022 à 11:59
17 févr. 2022 à 11:59
Ce n'est pourtant pas dûr de voir où mettre les accolades et les parenthèses ... surtout quand le code est bien indenté ..
et au pire.. il faut compter...
En gros
et au pire.. il faut compter...
En gros
$("#sousquartier").append( "<option value='"+el.id+"'>"+el.qua+"</option>"); }); // ferme le each }); // ferme le getJson } // ferme le if }); // ferme le on change
max30_3775
Messages postés
178
Date d'inscription
jeudi 4 novembre 2021
Statut
Membre
Dernière intervention
18 mars 2022
17 févr. 2022 à 13:18
17 févr. 2022 à 13:18
Maintenant c'est plus facile, et j'ai ajouté une autre pour le document ready et pas de problème dans le script. Pour le select du sousquartier, c'est toujours les sousquartiers du 1er select(dont l'id=1 et id_parent=0) qui s'affichent. Pas d'erreur dans la console, et non plus de message
jordane45
Messages postés
38242
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
2 octobre 2024
4 689
17 févr. 2022 à 13:22
17 févr. 2022 à 13:22
Sachant que dans le code que je t'ai donné il y a
Un console.log(
Tu as obligatoirement des choses afficher dans cette console...
Vide bien ton cash, choisi un quartier dans ta première liste, et fais-nous une capture écran de la console
Un console.log(
Tu as obligatoirement des choses afficher dans cette console...
Vide bien ton cash, choisi un quartier dans ta première liste, et fais-nous une capture écran de la console
max30_3775
Messages postés
178
Date d'inscription
jeudi 4 novembre 2021
Statut
Membre
Dernière intervention
18 mars 2022
17 févr. 2022 à 13:55
17 févr. 2022 à 13:55
jordane45
Messages postés
38242
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
2 octobre 2024
4 689
17 févr. 2022 à 17:16
17 févr. 2022 à 17:16
N'aurais tu pas d'autres codes JS dans ton fichier ?
Il serait bien de nous remontrer l'intégralité du code html + javascript que tu as actuellement....
Il serait bien de nous remontrer l'intégralité du code html + javascript que tu as actuellement....
max30_3775
Messages postés
178
Date d'inscription
jeudi 4 novembre 2021
Statut
Membre
Dernière intervention
18 mars 2022
18 févr. 2022 à 02:31
18 févr. 2022 à 02:31
Depuis un bon moment j'essaie de montrer l'intégralité du code, mais j'ai ACCESS DENIED.
max30_3775
Messages postés
178
Date d'inscription
jeudi 4 novembre 2021
Statut
Membre
Dernière intervention
18 mars 2022
18 févr. 2022 à 02:49
18 févr. 2022 à 02:49
max30_3775
Messages postés
178
Date d'inscription
jeudi 4 novembre 2021
Statut
Membre
Dernière intervention
18 mars 2022
18 févr. 2022 à 02:50
18 févr. 2022 à 02:50
Est-ce à cause des balises styles?
<style> /*/photo header*/ html, body { margin: 0; padding: 0; } /* ------------------------------- */ /* MENU */ #menu { position: relative; width: 100%; } #menu ul, #menu li, #menu li a { position: relative; margin: 0; padding: 0; box-sizing:border-box; list-style: none; z-index:1; } #menu ul { width: 100%; background:#FFA500;/*orange*/ font-weight: bold; } #menu ul li a { display: block; color:#873600;/*dark orange*/ padding: 20px 30px; position: relative; text-decoration: none; height:100%; } /* --------------- */ /* MENU : niveau 1 */ #menu nav > ul > li > a { color: white; } /* --------------- */ /* MENU : niveau 2 */ #menu ul ul { color:white; background:#f4d03f;/*jaune-orange*/ } #menu ul ul li > a { padding: 15px 30px; font-size: 10px bold; color:white;/*dark orange*/ } /* --------------- */ /* HOVER : afficher/masquer les SOUS-MENUS*/ #menu ul li > ul { display: none; /*on masque le SOUS-MENU*/ } #menu ul li:hover > ul { display: block; /*on affiche le SOUS-MENU*/ } #menu nav > ul > li.active > a, /* MENU : niveau 1 ACTIF */ #menu ul li:hover > a { color:#21618c;/*bleu*/ background: silver; } #menu nav > ul > li.active > a:before, /* MENU : niveau 1 ACTIF */ #menu nav > ul > li:hover > a:before { position:absolute; content:''; display:block; top:0; left:0; width:100%; height:5px; background:#f4d03f;/*jaune-orange*/ } /* ---------- responsive --------- */ /* DESKTOP : menu horizontal */ @media screen and (min-width: 769px) { #menu nav > ul { display: -webkit-flex; display: flex; } /* niveau 1 */ #menu nav > ul > li { -webkit-flex: 1 1 1%; /* astuce : 1% pour même largeur */ flex: 1 1 1%; } #menu nav > ul > li > a { } /* niveau 2 */ #menu nav > ul ul { position: absolute; width: 200%; } } /* ------------------------------- */ /* PHONE : menu vertical */ @media screen and (max-width: 768px) { #menu { width: 100%; margin:0 auto; height:7px; } } /* ------------------------------- */ /* MENU*/ nav input[type=checkbox], nav label { display:none; } @media screen and (max-width: 768px) { /* input */ input#menu-mobile { position: absolute; /*xxleft: -9999em;*/ opacity:0; /* invisible */ } label[for="menu-mobile"] { display: block; text-indent: .25em; background: #EEE; border: 1px solid #CCC; margin: 1px; cursor: pointer; height:48px; line-height:48px; } label[for="menu-mobile"]:before { content: "\2630"; display: block; position: absolute; top: 0; right: 0; width: 1em; text-align: center; text-indent: 0; font-size: 1em; font-weight: bold; color: #069; } /* on traite la liste menu */ #menu-mobile:not(:checked) ~ ul { display: none; position: absolute; left: -1px; width: 100%; margin: 0; padding: 0; border: inherit; background: #FFF; } #menu-mobile:checked ~[for="menu-mobile"]:before { content: "\2716"; } } .col-sm-6{ flex: 0 0 50%; flex-grow: 0; flex-shrink: 0; flex-basis: 50%; max-width: 50%; } .depot { color: white; text-decoration: none; outline: none !important; } .submit_bt{ position: absolute; right: 20px; font-size: 14pt; color: #ffffff; background-color: #69c934; border: 0px; height: 50px; padding: 0px 20px; margin-top: 30px; } .white-color{ color: white; } .maquette{ color: black; } .submit_bt a:hover{ color: #000; } .search_main{ width: 78%; float: right; } .sousnav{ display: grid; grid-template-columns: 1fr 5fr 5fr 5fr; grid-template-rows: 1fr 20fr 20fr; grid-template-areas: "lo social connect connect" "lo social lg search" ; height: 100px; margin-top: 45px; } .nav-item{ grid-area: connect; display: flex; /* on remet en flex */ justify-content :flex-end; /* on aligne les items dans flex*/ height: 30px; font-weight:bold; margin-right:10px; } .nav-item i{ padding-left:15px; } .search_main{ grid-area: search; display: flex; /* on remet en flex */ justify-content :flex-end; /* on aligne les items dans flex*/ padding-right: 20px; margin-top:10px; } .socialmedia{ grid-area: social; display: flex; /* on remet en flex */ justify-content: center; width: 110px; height: 30px; padding-left:10px; } .socialmedia i{ padding-right:10px; } .nav-link{ color:black; text-decoration: none; outline: none !important; } .logo{ grid-area: lo; background: url('/lewedli.jpg'); background-repeat:no-repeat; width: 140px; height: 125px; display:flex; align-items: start; margin-bottom: 20px; } .LatinLanguage{ grid-area: lg; display: flex; /* on remet en flex */ justify-content: center; height:30px; width: 180px; margin-top: 10px; } .langues{ color: blue; font-weight: bold; margin-left:5px; font-size: 12px; text-decoration: none; outline: none !important; } /*Bouton*/ /*.styled { border: 0; line-height: 2.5; padding: 0 20px; font-size: 1rem; text-align: center; color: #fff; text-shadow: 1px 1px 1px #000; border-radius: 10px; background-color: #FFA500; background-image: linear-gradient(to top left, rgba(0, 0, 0, .2), rgba(0, 0, 0, .2) 30%, rgba(0, 0, 0, 0)); box-shadow: inset 2px 2px 3px rgba(255, 255, 255, .6), inset -2px -2px 3px rgba(0, 0, 0, .6); } .styled:hover { background-color: #008000; } .styled:active { box-shadow: inset -2px -2px 3px rgba(255, 255, 255, .6), inset 2px 2px 3px rgba(0, 0, 0, .6); } .icons{ text-align: right; vertical-align: 30px; padding: 0px; margin-right: 20px } .boutons{ text-align: right; vertical-align: 50px; padding: 20px; }*/ </style> <header> <div id= "containermenu"> <div id= "rowmenu"> <div id="menu"> <nav> <label for="menu-mobile" class="menu-mobile">Menu</label> <input type="checkbox" id="menu-mobile" role="button"> <ul> <li class='menu'><a href="/index.php">Accueil</a> <li class='menu'><a href='/principales/affichage.php?id=1'>Immobilier</a><ul><li class='submenu'><a href='/principales/affichage.php?id=101'>Vente de Maisons </a></li><li class='submenu'><a href='/principales/affichage.php?id=102'>Location de Maison </a></li><li class='submenu'><a href='/principales/affichage.php?id=103'>Vente Appartement </a></li><li class='submenu'><a href='/principales/affichage.php?id=104'>Location Appartement </a></li><li class='submenu'><a href='/principales/affichage.php?id=105'>Bureau </a></li><li class='submenu'><a href='/principales/affichage.php?id=106'>Terrain </a></li></ul></li><li class='menu'><a href='/principales/affichage.php?id=2'>Véhicules</a><ul><li class='submenu'><a href='/principales/affichage.php?id=201'>Voitures </a></li><li class='submenu'><a href='/principales/affichage.php?id=202'>Motos </a></li><li class='submenu'><a href='/principales/affichage.php?id=203'>Pièces et Accessoires pour Véhicules </a></li><li class='submenu'><a href='/principales/affichage.php?id=204'>Vélos </a></li><li class='submenu'><a href='/principales/affichage.php?id=205'>Véhicules Professionnels </a></li></ul></li><li class='menu'><a href='/principales/affichage.php?id=3'>Multimédia</a><ul><li class='submenu'><a href='/principales/affichage.php?id=301'>Téléphones </a></li><li class='submenu'><a href='/principales/affichage.php?id=302'>Télévisions </a></li><li class='submenu'><a href='/principales/affichage.php?id=303'>Ordinateurs Portables </a></li><li class='submenu'><a href='/principales/affichage.php?id=304'>Accessoires Informatiques </a></li><li class='submenu'><a href='/principales/affichage.php?id=305'>Ordinateurs de Bureaux </a></li></ul></li><li class='menu'><a href='/principales/affichage.php?id=4'>Cours</a><ul><li class='submenu'><a href='/principales/affichage.php?id=401'>Cours Individuels </a></li><li class='submenu'><a href='/principales/affichage.php?id=402'>Cours Collectifs </a></li></ul></li><li class='menu'><a href='/principales/affichage.php?id=5'>Agriculture</a><ul><li class='submenu'><a href='/principales/affichage.php?id=501'>Vente de terrain agricole </a></li><li class='submenu'><a href='/principales/affichage.php?id=502'>Location de terrain agricole </a></li><li class='submenu'><a href='/principales/affichage.php?id=503'>Vente de tracteurs </a></li><li class='submenu'><a href='/principales/affichage.php?id=504'>Location de tracteurs </a></li></ul></li><li class='menu'><a href='/principales/affichage.php?id=20'>Autres...</a><ul></ul></li></ul> </nav> </div> <div class= "sousnav"> <div class="nav-item"> <a class="nav-link" href="/principales/connexion.php"> <i class="fa fa-user" aria-hidden="true"></i> <span> Connexion </span> </a> <a class="nav-link" href="/principales/register.php"> <i class="fa fa-user" aria-hidden="true"></i> <span> Inscription </span> </a> </div> <div class="search_main"> <button class="submit_bt"><a class='depot' href="/principales/formannonce.php"><span class="doctor"><i class='fa fa-plus white-color'></i></span> Déposer une annonce</a></button> </div> <div class="socialmedia"> <a href="#"><i class="fab fa-facebook-f "></i></a> <a href="#"><i class="fab fa-twitter"></i></a> <a href="#"><i class="fab fa-instagram"></i></a> <a href="#"><i class="fab fa-linkedin-in"></i></a> </div> <div class="logo"></div> <div class ="LatinLanguage"> <div class="language"> <i class="fa fa-globe" aria-hidden="true"></i> <a class= "langues" href="/index.php?lang=fr"> Français </a> <a class= "langues" href="/index.php?lang=en">English </a> <a class= "langues" href="/index.php?lang=ar">العربية</a> </div> </div> </div> </header> <html> <head> <meta charset="utf-8"> <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.0.0-beta3/css/all.min.css"> <script src='/jquery-3.6.0.js'> </script> <script> $(document).ready(function(){ $('#quartier').on('change',function(){ var quartierID= $(this).val(); if(quartierID){ $.getJSON("/principales/ajax.php",{quartier:quartierID}, function(result){ console.log('reponse ajax',result); $.each(result, function(i, el){ $("#sousquartier").append("<option value='"+el.id+"'>"+el.qua+"</option>"); }); // ferme le each }); // ferme le getJson } // ferme le if }); // ferme le on change }); </script> <style> <style> body { line-height: 1.5; font-family: 'Poppins', sans-serif; background-color: #eee } input{ display: inline-block; } .height-100 { height: 150vh } .card { margin-bottom: 100px; margin-top: 100px; width: 400px; border: 2px solid orange; } .btn { border: 0; line-height: 2.5; padding: 0 20px; font-size: 1rem; text-align: center; color: #fff; text-shadow: 1px 1px 1px #000; border-radius: 10px; background-color: #FFA500; background-image: linear-gradient(to top left, rgba(0, 0, 0, .2), rgba(0, 0, 0, .2) 30%, rgba(0, 0, 0, 0)); box-shadow: inset 2px 2px 3px rgba(255, 255, 255, .6), inset -2px -2px 3px rgba(0, 0, 0, .6); } .btn:hover { background-color: #008000; } .btn:active { box-shadow: inset -2px -2px 3px rgba(255, 255, 255, .6), inset 2px 2px 3px rgba(0, 0, 0, .6); } .list li { display: flex; align-items: center; justify-content: space-between; padding: 13px; border-top: 1px solid #eee; cursor: pointer } .list li:hover { background-color: silver; color: #fff } .pub{margin-top: 100px; } #infosuperficie{ display:none; } #moughataa{ display:none; } #d{ display:none; } #piece{ display:none; } </style> </head> <body> <div class= "pub"> <form action="" method="POST" enctype="multipart/form-data" id="search-form"> <div align= "center" class="container height-400 d-flex justify-content-center align-items-center"> <div class="card text-center"> <div class="py-4 p-2"> <div class="mt-3 d-flex flex-row justify-content-center"> <h5 style="font-size: 20px;">Informations du vendeur</h5> <span> <label for= "pseudo">Nom ou pseudo</label> </span> <br> <input type="text" id="pseudo" name="pseudo" /> <button type="button" class="microform"><i class="fas fa-microphone"></i></button> <br> <br> <span><label for="telephone">Téléphone</label></span> <br> <input type="tel" id="phone" name="telephone" maxlength="20"> <br> <br> <span><label for="whatsapp">Whatsapp</label></span> <br> <input type="tel" id="whatsapp" name="whatsapp" maxlength="20"> <br> <br> <span><label for= "email">Email </label></span><br> <input type="email" id="email" name="email" maxlength="50"/> <br> <br> <br> <br> </ul> </div> </div> </div> <div align= "center" class="container height-400 d-flex justify-content-center align-items-center"> <div class="card text-center"> <div class="py-4 p-2"> <div class="mt-3 d-flex flex-row justify-content-center"> <h5 style="font-size: 20px;">Informations de l'annonce</h5> <span> <label for="categorieannonce">Catégorie de votre annonce</label></span> <br> <select id="typecategorie" onchange="choisirsup();choisirnbre()" name="categorie" required> <option value="" disabled selected>Catégorie</option> <optgroup label ='Immobilier'> <option value='101'>Vente de Maisons</option> <option value='102'>Location de Maison</option> <option value='103'>Vente Appartement</option> <option value='104'>Location Appartement</option> <option value='105'>Bureau</option> <option value='106'>Terrain</option> </optgroup> <optgroup label ='Véhicules'> <option value='201'>Voitures</option> <option value='202'>Motos</option> <option value='203'>Pièces et Accessoires pour Véhicules</option> <option value='204'>Vélos</option> <option value='205'>Véhicules Professionnels</option> </optgroup> <optgroup label ='Multimédia'> <option value='301'>Téléphones</option> <option value='302'>Télévisions</option> <option value='303'>Ordinateurs Portables</option> <option value='304'>Accessoires Informatiques</option> <option value='305'>Ordinateurs de Bureaux</option> </optgroup> <optgroup label ='Cours'> <option value='401'>Cours Individuels</option> <option value='402'>Cours Collectifs</option> </optgroup> <optgroup label ='Agriculture'> <option value='501'>Vente de terrain agricole</option> <option value='502'>Location de terrain agricole</option> <option value='503'>Vente de tracteurs</option> <option value='504'>Location de tracteurs</option> </optgroup> <option value='20'>Autres...</option> </select> <br> <br> <div id="piece"> <span> <label for= "chambre">Nombre de chambres</label></span> <br> <input type="number" id="chambre" name="chambre"> <br> <br> <span> <label for= "douche">Nombre de douches</label></span> <br> <input type="number" id="douche" name="douche"> <br> <br> </div> <div id="infosuperficie" <span><label for= "superficie">Superficie</label></span> <br> <input type="number" id="superficie" name="superficie"> <br> <br> <span> <label for= "unite">Unité</label></span> <br> <input type="radio" name="unite" value="m2"> m2 <br> <input type="radio" name="unite" value="ha">ha <br> <br> </div> <span><label for="villes">Ville</label></span> <br> <select id="villes" onchange="choisirquart()" name="villes" required> <option value="" disabled selected>Ville</option> <option value='1'>Nouakchott</option><option value='2'>Nouadhibou</option><option value='3'>Atar</option><option value='4'>Rosso</option><option value='5'>Zouerate</option><option value='6'>Kaedi</option><option value='7'>Kiffa</option><option value='8'>Adelbagrou</option><option value='9'>Boutilimitt</option><option value='10'>Mal</option><option value='11'>Bareina</option><option value='12'>Gouraye</option><option value='13'>Chinguetti</option><option value='14'>Oualata</option><option value='15'>Tichitt</option><option value='16'>Ouadane</option><option value='17'>Nema</option><option value='18'>Aleg</option><option value='19'>Tidjikdja</option><option value='20'>Koumbi</option><option value='21'>Selibabi</option><option value='22'>Aioun</option><option value='23'>Rkiz</option><option value='24'>Bassikounou</option><option value='25'>Guerou</option><option value='26'>Djigueni</option><option value='27'>Benichab</option><option value='28'>Bababe</option><option value='29'>Tintane</option><option value='30'>Keurmacene</option><option value='31'>Ntékane</option><option value='32'>Mederdra</option> </select> <br> <br> <div id= "moughataa"> <span><label for="quartier">quartier</label></span> <br> <select id="quartier" onchange="choisirsous()" name="quartier"> <option value="" disabled selected>quartier</option> <option value='1'>Araffatt</option><option value='2'>Dar-Naim</option><option value='3'>El Mina</option><option value='4'>Ksar</option><option value='5'>Riyadh</option><option value='6'>Sebkha</option><option value='7'>Tevragh-Zeina</option><option value='8'>Teyaret</option><option value='9'>Toujounine</option> </select> <br> <br> </div> <div id="d"> <span><label for="sousquartier">quartier2</label></span> <br> <select id= "sousquartier" name="sousquartier"> <option value="" disabled selected>quartier</option> <option value='101'>Carrefour</option><option value='102'>El Velouja</option><option value='103'>Tensweilem</option><option value='104'>Poteau 3</option><option value='105'>Poteau 4</option><option value='106'>Poteau 6</option><option value='107'>Poteau 11</option><option value='108'>Mosquée Nour</option><option value='109'>Beit Police</option> </select> </div> <br> <br> <span> <label for= "titre">Titre de votre annonce</label></span><br> <input type="text" id="titre" name="titre" maxlength="35"> <button type="button" class="microform"><i class="fas fa-microphone"></i></button> <br> <br> <span><label for= "description">Description</label></span> <br> <textarea id="description" name="description" rows="4" cols="50"> </textarea> <br> <br> <br> <br> <span> <label for= "prix">Prix en MRO</label></span> <br> <input type="number" id="prix" name="prix"> <br> <br> </ul> </div> </div> </div> <div align= "center" class="container height-400 d-flex justify-content-center align-items-center"> <div class="card text-center"> <div class="py-4 p-2"> <div class="mt-3 d-flex flex-row justify-content-center"> <h5 style="font-size: 20px;">Les Photos</h5> <span> <label for= "image">Photo1</label></span> <input type="file" id="img1" name="img1" accept="image/png, image/jpeg, image/jpg" > <br><br> <span><label for= "image">Photo2</label> </span> <input type="file" id="img2" name="img2" accept="image/png, image/jpeg, image/jpg"><br><br> <span><label for= "image">Photo3</label></span> <input type="file" id="img3" name="img3" accept="image/png, image/jpeg, image/jpg"> <br><br> <span> <label for= "image">Photo4</label></span> <input type="file" id="img4" name="img4" accept="image/png, image/jpeg, image/jpg"> <br><br> <span><label for= "image">Photo5</label></span> <input type="file" id="img5" name="img5" accept="image/png, image/jpeg, image/jpg"> <br><br> <br> <br> <input type="submit" id='submit' name="formannonce" value='valider' /> <br><br> </form> </ul> </div> </div> </div> <script> //rv const searchForm = document.querySelector("#search-form"); const searchFormInput = searchForm.querySelector("input"); // <=> document.querySelector("#search-form input"); const info = document.querySelector(".info"); // The speech recognition interface lives on the browser’s window object const SpeechRecognition = window.SpeechRecognition || window.webkitSpeechRecognition; // if none exists -> undefined if(SpeechRecognition) { console.log("Your Browser supports speech Recognition"); const recognition = new SpeechRecognition(); recognition.continuous = true; recognition.lang = "ar-AR"; const micBtn = searchForm.querySelector("button"); const micIcon = micBtn.firstElementChild; micBtn.addEventListener("click", micBtnClick); function micBtnClick(){ if(micIcon.classList.contains("fa-microphone")) { recognition.start(); } else { recognition.stop(); } } recognition.addEventListener("start", startSpeechRecognition); // <=> recognition.onstart = function(){...} function startSpeechRecognition(){ micIcon.classList.remove("fa-microphone"); micIcon.classList.add("fa-microphone-slash"); searchFormInput.focus(); console.log("Voice activated, SPEAK"); } recognition.addEventListener("end", endSpeechRecognition); // <=> recognition.onend = function(){...} function endSpeechRecognition(){ micIcon.classList.remove("fa-microphone-slash"); micIcon.classList.add("fa-microphone"); searchFormInput.focus(); console.log("Speech recognition service disconnected"); } recognition.addEventListener("result", resultOfSpeechRecognition); // <=> recognition.onresult = function(event) {...} - Fires when you stop talking function resultOfSpeechRecognition(event) { const current = event.resultIndex; const transcript = event.results[current][0].transcript; if(transcript.toLowerCase().trim()==="stop recording") { recognition.stop(); } else if(!searchFormInput.value) { searchFormInput.value = transcript; } else { if(transcript.toLowerCase().trim()==="go") { searchForm.submit(); } else if(transcript.toLowerCase().trim()==="reset input") { searchFormInput.value = ""; } else { searchFormInput.value = transcript; } } // searchFormInput.value = transcript; // searchFormInput.focus(); // setTimeout(() => { // searchForm.submit(); // }, 500); } info.textContent = 'Voice Commands: "stop recording", "reset input", "go"'; } else { console.log("Your Browser does not support speech Recognition"); info.textContent = "Your Browser does not support Speech Recognition"; } </script> <script> function choisirquart() { var sup= document.getElementById("typecategorie"); var city= document.getElementById("villes"); if((sup.value >=101 && sup.value <=106) && (city.value== 1)) { console.log('oui'); document.getElementById("moughataa").style.display="block"; } else{ console.log('non'); document.getElementById("moughataa").style.display="none"; } } </script> <script> function choisirsous() { var sous= document.getElementById("quartier"); if(sous.value >= 1 ) { console.log('yes'); document.getElementById("d").style.display="block"; } else{ console.log('no'); document.getElementById("d").style.display="none"; } } </script> <script> //select dynamique function choisirsup() { var sup= document.getElementById("typecategorie"); console.log(sup.value); if( (sup.value >=101 && sup.value <=106) || (sup.value >=501 && sup.value <=504)) { console.log('ok'); document.getElementById("infosuperficie").style.display="block"; } else{ console.log('ko'); document.getElementById("infosuperficie").style.display="none"; } } </script> <script> function choisirnbre(){ var nbre= document.getElementById("typecategorie"); console.log(nbre.value); if(nbre.value >=101 && nbre.value <=104) { console.log('ok'); document.getElementById("piece").style.display="block"; } else{ console.log('ko'); document.getElementById("piece").style.display="none"; } } </script> </body> </html>