IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

jQuery Discussion :

Déclarer une variable avant un Each ?


Sujet :

jQuery

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Février 2013
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2013
    Messages : 14
    Par défaut Déclarer une variable avant un Each ?
    Bonjour à tous,

    J'ai un menu déroulant (généré en php) qui affiche une série de checkbox ou de radio en fonction du choix dans le menu

    Le formulaire se valide grace a un script Jquery

    J'essaye qu'au changement sur le menu, les cases cochés soit enregistrées

    Mon problème est que lorsque que je change, le script s'active mais du coup, l'id du choix devient celui après changement et non celui qui correspond aux checkbox

    Le script :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    <script type="text/javascript">
    	$(document).ready(function(){
    		var idque;
    		var ii = 0;
    		$("#formqu").focus(function(){
    		idque = $(this).val();
    		}).change(function(){
    			ii = 0;
    			$("#formre :checked").each(function(){
    				ii++;
    				idepr = $("#formep").find("select[name=ide]").val();
    				idrep = $(this).attr('id');
    				$.post("formpost.php", {idrep: idrep, idepr: idepr, idque: idque, ii: ii}, function(data){
    					$("#formpost").html(data);	
    			});			
    			});
    			return false;
    		});		
    	});
    </script>
    idepr est un autre menu déroulant, pas de soucis pour ça

    Pour l'instant idepr correspond, idrep(soit les id des checkbox/radio) fonctionne

    Mais si je déclare idque (le menu déroulant dont je parlais) dans le each de cette manière :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    idque = $("#formqu").find("select[name=idq]").val();
    Evidemment, il prend la valeur d'après changement..

    C'est pour ça que j'ai mis un :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $("#formqu").focus(function(){
    idque = $(this).val();
    Mais du coup, lors de l'envois des données post, il n'envois pas idque, pourtant, elle est déclarée au début du script, mais je n'arrive pas a la récupérer dans le post

    Quelqu'un aurait une idée ?

    Merci d'avance !

  2. #2
    Membre extrêmement actif
    Avatar de Golgotha
    Homme Profil pro
    Full-stack Web Developer
    Inscrit en
    Août 2007
    Messages
    1 387
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Full-stack Web Developer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2007
    Messages : 1 387
    Billets dans le blog
    1
    Par défaut
    Bonjour,

    As tu mis un breakpoint sur les lignes :

    • idque = $(this).val();
    • $.post("formpost.php", [...]


    • Le code sur le focus se déclenche t'il bien ?
    • Si oui : quelle est la valeur de idque quand le focus se déclenche
    • Quel est la valeur de idque juste avant l'envoie.
    • Comment récupère tu la valeur de idque en php ?
    • Si la valeur de idque est null avant l'envoie, fait un bouchon et confirme que le php récupère bien la valeur.
    Consultant et développeur full-stack spécialiste du Web
    faq jQuery - règles du forum - faqs web

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Février 2013
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2013
    Messages : 14
    Par défaut
    Je ne m'attendais pas à cette vitesse de réponse !

    Qu'est-ce qu'un breakpoint ? a quoi sert il ?

    En fait non, le code ne se déclenche pas, c'est bien mon problème

    Pour récupérer la valeur de idque, je fais un extract($_POST); dans formpost.php, et puis j'écris dans la base

    Si je déclare idque dans le each, tout fonctionne (mise a part que ce n'est pas le bon id)

    Mais si je le déclare avant, ça ne marche tout simplement pas, j'ai des erreurs :

    -Undefined variable: idque

    Et bien évidemment :

    -[SQL Server]Impossible d'insérer la valeur NULL dans la colonne

    Comment faire un bouchon ?

    Merci pour ta réponse, je continue de chercher pour les breakpoints

    Edit : j'ai mis un Alert(idque) en même temps que le html(data) pour vérifier et effectivement la variable est undefined

    Edit : j'ai commenté tout le script mis a part le focus et le change,
    Puis j'ai mis un alert(idque); directement après le change, et la variable est déjà undefined, donc le problème vient bien du focus, pourtant la syntaxe a l'air bonne ?

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Février 2013
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2013
    Messages : 14
    Par défaut
    Bonsoir,

    Et bien j'ai réussi a régler mon problème de cette manière :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    <script type="text/javascript">
    	$(document).ready(function(){
    		var idque;
    		var ii = 0;
    		$("select[name=idq]").focus(function(){
    		idque = $(this).val();
    		}).change(function(){
    			ii = 0;
    			$("#formre :checked").each(function(){
    				ii++;
    				idepr = $("#formep").find("select[name=ide]").val();
    				idrep = $(this).attr('id');
    				$.post("formpost.php", {idrep: idrep, idepr: idepr, idque: idque, ii: ii}, function(data){
    					$("#formpost").html(data);
    			});			
    			});
    			return false;
    			idque = $(this).val();
    		});		
    	});
    </script>
    Merci donc pour vos (ta) réponse

    Je passe en résolu !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Déclarer une variable pour remplacer cout
    Par alvun dans le forum SL & STL
    Réponses: 11
    Dernier message: 29/06/2006, 10h29
  2. Comment déclarer une variable binaire?
    Par Pragmateek dans le forum C++
    Réponses: 12
    Dernier message: 22/03/2006, 17h35
  3. Déclarer une variable globale
    Par OverLorD34 dans le forum MFC
    Réponses: 8
    Dernier message: 18/03/2006, 10h46
  4. [Variable] Déclarer une variable avec un nom dynamique
    Par jacquesh dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 10/02/2006, 14h11
  5. Réponses: 5
    Dernier message: 20/09/2005, 22h48

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo