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

Langage PHP Discussion :

Probleme input hidden et getElementById().value


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre à l'essai
    Inscrit en
    Mars 2011
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Mars 2011
    Messages : 6
    Par défaut Probleme input hidden et getElementById().value
    Bonjour à tous,

    J'ai un ptit probleme qui me rend complément ouf

    explication : je veux récuperer la position du scroll de l'utilisateur, la mettre dans un champs input hidden d'un formulaire pour récupérer la variable post dans mon fichier de gestion de formulaires et pouvoir ainsi renvoyer l'utilisateur à la position où il se trouvait avant de soumettre le formulaire.

    Voilà comment je my prends (le code est simplifié) :

    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
    /*fichier contenant le form*/
    <script type="text/javascript">
    	function meuh(qdqdqsdq)
    	{
    		alert(document.getElementById('positionScroll').value);//=>affiche 333(valeur par defaut)
    		var posScroll = document.documentElement.scrollTop;
    		document.getElementById('positionScroll').value=posScroll;
    		alert(document.getElementById('positionScroll').value);//=>affiche la position du scroll courante (en gros ca marche bien)
    		qdqdqsdq.form.submit();
    	}
    </script>
     
    <form method="post" action="index.php?...blablabla" name="formCoordonneesModifier">
     
    	<p>
    		<input type="hidden" name="positionScroll" id="positionScroll" value="333" />
    	</p>
    	<div class="formBoutonModifier">
    		<input class="bouton" type="button" onclick="meuh(this);return false;" value="Modifier" />
    	</div>
    </form>


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    /*fichier de recuperation des variables POST*/
    <?php
    	//position du scroll
    	if(!empty($_POST['positionScroll'])){$positionScroll=htmlspecialchars($_POST['positionScroll']);}else{$positionScroll=0;}
     
    	echo $positionScroll;//=> affiche 333 (la valeur par defaut dans le input hidden...)
     
    	//placement de la fenetre en fonction du scroll précédent de l'utilisateur(ca marche c'est bon)
    	?><script type="text/javascript">$(document).ready(function (){window.scrollTo(0,<?php echo $positionScroll;?>);});</script><?php
    ?>
    Bref on dirait que le formulaire est soumis avant que la modif du input hidden soit effective, meme avec un return:false sur le onclick...

    Merci d'avance pour votre aide

  2. #2
    Expert confirmé
    Avatar de Benjamin Delespierre
    Profil pro
    Développeur Web
    Inscrit en
    Février 2010
    Messages
    3 929
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2010
    Messages : 3 929
    Par défaut
    Il faut enlever les inputs de type submit de ton formulaire et mettre un boutton type button avec en onclick ton traitement sur l'input hidden et ensuite la soumission du formulaire.

  3. #3
    Membre à l'essai
    Inscrit en
    Mars 2011
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Mars 2011
    Messages : 6
    Par défaut
    Citation Envoyé par Benjamin Delespierre Voir le message
    Il faut enlever les inputs de type submit de ton formulaire et mettre un boutton type button avec en onclick ton traitement sur l'input hidden et ensuite la soumission du formulaire.
    Merci pour cette réponse très rapide mais il semble que c'est déjà ce que j'ai fais nan ?

  4. #4
    Expert confirmé
    Avatar de Benjamin Delespierre
    Profil pro
    Développeur Web
    Inscrit en
    Février 2010
    Messages
    3 929
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2010
    Messages : 3 929
    Par défaut
    Je viens de faire tourner ton bout de code et la valeur de positionScroll à bien été changée à 0.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    Paramètresapplication/x-www-form-urlencoded
    positionScroll	0
    Source
    Content-Type: application/x-www-form-urlencoded Content-Length: 16 positionScroll=0
    Je te recommande l'usage de Web Developper Toolbar et de FireBug pour Firefox afin d'identifier les comportements de tes pages.

    Par ailleurs
    explication : je veux récuperer la position du scroll de l'utilisateur, la mettre dans un champs input hidden d'un formulaire pour récupérer la variable post dans mon fichier de gestion de formulaires et pouvoir ainsi renvoyer l'utilisateur à la position où il se trouvait avant de soumettre le formulaire.
    Pourquoi ne pas utiliser les ancres ?

  5. #5
    Membre à l'essai
    Inscrit en
    Mars 2011
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Mars 2011
    Messages : 6
    Par défaut
    Citation Envoyé par Benjamin Delespierre Voir le message
    Je viens de faire tourner ton bout de code et la valeur de positionScroll à bien été changée à 0.
    Oui ca marche sans soucis, le probleme est que cette modif n'est pas retenue lors de l'envoi du formulaire.

    Citation Envoyé par Benjamin Delespierre Voir le message
    Pourquoi ne pas utiliser les ancres ?
    J'y ai pensé mais je veux que le scroll revienne au pixel près lors du rechargement de la page.

    J'espere avoir été plus clair, et merci pour les réponses

  6. #6
    Expert confirmé
    Avatar de Benjamin Delespierre
    Profil pro
    Développeur Web
    Inscrit en
    Février 2010
    Messages
    3 929
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2010
    Messages : 3 929
    Par défaut
    C'est ta vérification qui est en cause:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    if(!empty($_POST['positionScroll']))
    Alors que dans l'exemple que j'ai fait tourner, $_POST['positionScroll'] vaut 0 et est donc considéré comme vide.
    Il faut utiliser la clause isset à la place:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    if (isset($_POST['positionScroll']) && $_POST['positionScroll'] !== "")
    -- Edit

    Au passage puisque tu veux un repositionnement au pixel près et quite à utiliser JavaScript, pourquoi ne pas soumettre le formulaire via Ajax ? Ainsi l'utilisateur ne change pas de page et son scroll reste inchangé.

Discussions similaires

  1. pass input Hidden value comme variable dans HREF
    Par windows2056 dans le forum ASP.NET
    Réponses: 0
    Dernier message: 04/10/2013, 13h51
  2. inclure GetElementById dans un input hidden
    Par mikl86 dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 02/11/2012, 13h40
  3. [DOM] Passage de valeur dans input via getElementById().value
    Par Invité dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 08/07/2008, 21h47
  4. problemes input texte
    Par Shadow69 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 7
    Dernier message: 15/02/2006, 03h56
  5. Problème d'installation (Bad EIP value)
    Par Bensor dans le forum Administration système
    Réponses: 7
    Dernier message: 14/11/2004, 10h53

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