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 :

Variable PHP à initialiser dans un code JavaScript


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    535
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2012
    Messages : 535
    Par défaut Variable PHP à initialiser dans un code JavaScript
    salut à tous!

    j'ai un problème complexe, mais comme c'est compliqué à expliquer, je vais déjà tenter d'expliquer ce à quoi j'ai pensé, une version "+ simple", pour voir si c'est possible au moins...

    au besoin je me fendrai d'explications complexes plus tard, et/ou dans un autre post!

    .php: tableau de checkbox
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    <form id="form" method="post">
    for($i=0; $i<10; $i++)
    {
    echo "<input value=\"0\" name=\"test[]\" type=\"checkbox\" onchange=\"clickedLine($i);\"/>";
    }
    submit
    </form>
    .js
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    function clickedLine(indice)
    {
    je voudrais pouvoir faire un truc du genre "$test[indice] = 1"
    }
    DONC, est-ce possible? Comment?

    POUR RESUMER: je veux pouvoir récupérer dans $_POST TOUS mes test[] (de test[0] à test[9] donc!) et pas uniquement ceux cochés (checked)!
    -> les non cochés à 0
    -> les cochés à 1

    exemple:
    $_POST[test][0] = 0
    $_POST[test][1] = 0
    $_POST[test][2] = 1
    $_POST[test][3] = 1
    $_POST[test][4] = 1
    $_POST[test][5] = 0
    $_POST[test][6] = 0
    $_POST[test][7] = 1
    $_POST[test][8] = 0
    $_POST[test][9] = 0

    j'ai déjà testé plein de choses trouvées en lignes, mais je n'avance pas!

    alors peut être que ma solution est débile , c'est possible, mais si vous avez mieux n'hésitez pas.

    merci.

  2. #2
    Invité
    Invité(e)
    Par défaut
    Lorsque ta case à cocher est cochée et que tu envois ta requête, ta variable poste a pour valeur 'on'.

    Tu peux faire un truc du genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    for ($i =0, $i <= $nbrCheckbox, $i++)
    {
           if ($_POST[test][$i] == 'on')
           {
                   $_POST[test][$i] =  1;
           }
           else
           {
                    $_POST[test][$i] =  0;
           }
    }
    Ou utiliser les Booléens ou vérifier si ta variable POST existe... A toi de voir

  3. #3
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    535
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2012
    Messages : 535
    Par défaut
    Non, déjà testé.

    SI tu ne mets pas de value aux checkbox
    ALORS les cases cochées renvoient ON en effet.

    SI tu mets une value=off aux checkbox
    ALORS les cochées renvoient OFF poru celle cochées.

    OR, je veux TOUTE la liste des cochées dans $_POST
    -> cochées
    -> ET NON cochées

  4. #4
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    535
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2012
    Messages : 535
    Par défaut
    Ok, je pense qu'il vaut mieux que je développe un peu l'explication malgré tout!

    en fait, j'ai une liste de 10 codes article + checkbox
    -> exemple: 123456 + checkbox

    mon but:
    1.) surligner de manière différente les lignes sélectionnées: OK
    2.) récupérer les articles sélectionnés

    les champs du formulaires:
    -> code article: passé en hidden (pour récupération par $8POST) + affichage en clair pour le user
    -> checkbox: indique si article coché ou pas

    le problème actuel: décallage entre $_POST['article'] & $_POST['test']
    -> $_POST['article'] contient TOUS les codes article puisque hidden
    -> $_POST['test'] ne contient QUE les N cases cochées

    -> exemple: je coche les articles n°1 & n° 5
    $_POST['article'] = 123456, 234567, 345678, 456789, 012345, 963258, 852147, 789654, 321456, 789321
    $_POST['test'] = on, on

    MAIS du coup impossible de faire le lien entre 123456 = ON & 012345 = ON

    tout ce que je sais c'est que 2 checkbox ont été cochées MAIS sans savoir quels articles!


    ce qu'il me faut:
    $_POST['article'] = 123456, 234567, 345678, 456789, 012345, 963258, 852147, 789654, 321456, 789321
    $_POST['test'] = on, off, off, off, on, off, off, off, off, off
    (on/off OU 1/0 peu importe!)



    .php
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    <form id="form" method="post">
    for($i=0; $i<10; $i++)
    {
    echo "<td><input name=\"article[]\" type=\"hidden\" value=\"article$i\">article[$i]";
    echo "<input value=\"0\" name=\"test[]\" type=\"checkbox\" onchange=\"clickedLine($i);\"/>";
    }
    submit
    </form>

    .js
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    function clickedLine(indice)
    {
    je voudrais pouvoir faire un truc du genre "$test[indice] = 1" ou ON
    (si value de la checkbox initialisée à 0 ou OFF dans le formulaire)
    }
    voilà, j'espère que c'est plus clair

  5. #5
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    chaque article a un identifiant unique (id -> $idarticle) :

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    foreach($mesarticles as $unarticle]
    {
       // on récupère les infos de l'article (requete en Bdd ?) -> dont $idarticle
       $idarticle = $row['ID'];
       // ....
       echo '<input type="hidden" name="article['.$idarticle.']" value="'.$idarticle.'"/>';
       echo '<input type="checkbox" name="test['.$idarticle.']" value="1" />';
    }
    A la récupération :
    Les index des array $_POST['article'] et $_POST['test'] sont ainsi les même, et directement associé à l'id de l'article concerné.

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    foreach($_POST['article'] as $index => $idarticle)
    {
       if(isset($_POST['test'][$index])){
          $_POST['test'][$index] = 1; // ou 'ON'
          echo 'case '.$idarticle.' cochée<br />';
       } else {
          $_POST['test'][$index] = 0; // ou 'OFF'
          echo 'case '.$idarticle.' NON cochée<br />';
       }
    }
    Dernière modification par Invité ; 22/01/2014 à 10h02.

  6. #6
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    535
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2012
    Messages : 535
    Par défaut
    ok, je pense avoir compris où tu voulais en venir!

    MAIS, mon exemple "article" c'était juste pour simplifier parce qu'en fait ma ligne de data "article" ne comprend pas juste une colonne ID, mais 10 colonnes en fait (ex: libellé, couleur, prix, fournisseur, délais, .......)+ la checkbox de sélection en fin de ligne.

    difficile de toutes les concaténer pour les passer comme name de la CB.

  7. #7
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par jreaux62 Voir le message
    chaque article a un identifiant unique (id -> $idarticle)
    J'ai modifié mon précédent message -> à relire, donc.

    En fait, ton problème est simple à résoudre.
    Mais au lieu de nous mettre un faux "exemple simplifié", mets-nous directement un extrait exploitable de ton formulaire.

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

Discussions similaires

  1. Peut-on récupérer une variable php dans un code javaScript?
    Par Marc22 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 15/02/2010, 11h02
  2. Affichage de la valeur d'une variable php dans un code javascript
    Par hastiok dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 08/12/2009, 12h59
  3. [PHP 5.0] Récupérer la valeur d'une variable php dans du code javascript
    Par HF974 dans le forum Langage
    Réponses: 4
    Dernier message: 08/03/2009, 11h46
  4. Réponses: 7
    Dernier message: 05/01/2008, 19h37
  5. [PHP-JS] variable php dans du code javascript
    Par Mut dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 05/07/2007, 15h11

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