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

JavaScript Discussion :

Plusieurs include dans une même page qui contient plusieurs submit


Sujet :

JavaScript

  1. #1
    Nouveau membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Décembre 2015
    Messages
    52
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2015
    Messages : 52
    Points : 25
    Points
    25
    Par défaut Plusieurs include dans une même page qui contient plusieurs submit
    Bonjour, un peu d'aide serait fort apprécié ! J'ai plusieurs items dans une page sur lesquels les gens peuvent voter avec un "select". Pour ce faire j'ai créé mon formulaire dans un fichier php et sur ma page avec les items j'ai fait un include du fichier php pour chaque item. Le problème c'est que lorsqu'on clic sur un submit, c'est tous les submit, donc tous les items qui reçoivent un vote. Y a-t-il moyen avec du javascript de trafiquer mon formulaire pour qu'il puisse être fonctionnel avec chacun des items mais un seul à la fois. Le code du formulaire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <form method="post" name="monform" id="monform">
    			<select class="select" name="note1"><option value="2.5"> Votre note sur 5</option><option value="1">1</option><option value="2">2</option><option value="3">3</option><option value="4">4</option><option value="5">5</option></select>
    			<input onSubmit="history.go(-1)" class="soumis" type="submit" value="Voter" />
    			</form>

  2. #2
    Nouveau membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Décembre 2015
    Messages
    52
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2015
    Messages : 52
    Points : 25
    Points
    25
    Par défaut
    J'avais pensé mettre un name à mon bouton submit comme par exemple mais j'ignore comment procéder par la suite...

  3. #3
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    ce ne sont pas des "include" qu'il faut faire, mais une fonction.
    Code php : 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
    <?php
    function vote_item( $item_id )
    {
    ?>
    	<form class="monform" method="post" action="page-de-traitement.php">
    		<input type="hidden" name="item_id" value="<?php echo $item_id; ?>" />
    		<select class="select" name="note1">
    			<option value="2.5"> Votre note sur 5</option>
    			<option value="1">1</option>
    			<option value="2">2</option>
    			<option value="3">3</option>
    			<option value="4">4</option>
    			<option value="5">5</option>
    		</select>
    		<input class="soumis" type="submit" value="Voter" />
    	</form>
    <?php
    }
    ?>

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    <?php vote_item( $item_id ); ?>
    Quant au traitement, il peut se faire via Ajax, afin de ne pas quitter/recharger la page.

  4. #4
    Nouveau membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Décembre 2015
    Messages
    52
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2015
    Messages : 52
    Points : 25
    Points
    25
    Par défaut
    Merci pour ta réponse ! Mais est-ce que je dois recopier cette fonction pour chaque item ? Car le name que tu as nommé comme "item_id" sera toujours le même ? Il faut un name différent pour chaque item non ?

  5. #5
    Nouveau membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Décembre 2015
    Messages
    52
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2015
    Messages : 52
    Points : 25
    Points
    25
    Par défaut
    J'aurais dû être plus clair je m'excuse, je vais vous montrer le code que j'ai mis sur la page des items
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <?php include ("traitement.php");
    notation('item_id',$ip_vote);?>
    Pour un seul item ça fonctionnait à merveille, mais pour plusieurs ça cause problème étant donné que mon formulaire est dans traitement.php

  6. #6
    Invité
    Invité(e)
    Par défaut
    Donc...
    c'est à nous de deviner ce que contiennent traitement.php et la fonction notation() ??

    Tu veux une réponse, ou continuer à jouer aux devinettes ?

    Désolé, ma boule de cristal est hors service...

  7. #7
    Nouveau membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Décembre 2015
    Messages
    52
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2015
    Messages : 52
    Points : 25
    Points
    25
    Par défaut
    Désolé j'avoue que ça irait un peu mieux, voici ce que contient traitement.php, du moins jusqu'au formulaire, je ne crois pas que le reste soit à modifier
    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
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    <?php function getIp()
     
    {
     
        if(isset($_SERVER['HTTP_X_FORWARDED_FOR']))
     
        {
     
            $ip_vote = $_SERVER['HTTP_X_FORWARDED_FOR'];
     
        }
     
        elseif(isset($_SERVER['HTTP_CLIENT_IP']))
     
        {
     
            $ip_vote = $_SERVER['HTTP_CLIENT_IP'];
     
        }
     
        else
     
        {
     
            $ip_vote = $_SERVER['REMOTE_ADDR'];
     
        }
     
        return $ip_vote;
     
    }
     
    //Ip utilisateur
     
    $ip_vote = getIp();     
     
     
    function notation($id_vote,$ip_vote){
     
     
    $deja_voter = mysql_query("SELECT ip FROM analyses WHERE ip = '".mysql_real_escape_string($ip_vote)."' AND id_page = '".mysql_real_escape_string($id_vote)."'");
     
    if(mysql_num_rows($deja_voter) == 0)
     
    {
            
    echo'
    <div class="form">      
                            <form method="post" name="monform" id="monform">
                            <select class="select" name="note1"><option value="2.5"> Votre note sur 5</option><option value="1">1</option><option value="2">2</option><option value="3">3</option><option value="4">4</option><option value="5">5</option></select>
                            <input onSubmit="history.go(-1)" class="soumis" type="submit" value="Voter" />
                            </form>
                            <br />
                    </div><hr>
                            ';} 
     
    if(isset($_POST['note1']) && $_POST['note1'] != NULL){
     
        if(isset($_COOKIE["deja_voter"]) && $_COOKIE["deja_voter"] == $id_vote){
     
            die ("Un seul vote autorisé ... merci!");
     
        }
            
        $note1 = $_POST['note1'];
     
    $insert = mysql_query("INSERT INTO analyses VALUES ( '', '".mysql_real_escape_string($id_vote)."', '".mysql_real_escape_string($note1)."', '".mysql_real_escape_string($ip_vote)."', '' ) ");
     
    if(!$insert) {
     
        die('Requête invalide : ' . mysql_error());
     
    }
     
        else{   
     
            echo '<h3 class="merci">Merci d\'avoir voté !</h3><br/>
                    
                    <script type="text/javascript">
                    document.getElementById("monform").innerHTML = "";
                    window.setTimeout(function(){self.location.href="'.$_SERVER['REQUEST_URI'].'";},3000);
                    </script> ';
        }
    } ?>

  8. #8
    Invité
    Invité(e)
    Par défaut
    Question :

    Comment transmets-tu, et récupères-tu, l'identifiant de l'ITEM ?

  9. #9
    Nouveau membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Décembre 2015
    Messages
    52
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2015
    Messages : 52
    Points : 25
    Points
    25
    Par défaut
    Dans ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <?php include ("traitement.php");
    notation('item_id',$ip_vote);?>
    au lieu de item_id je met l'identifiant de l'item, et je recopiais ce include pour chaque item en adaptant le item_id, mais lorsque je vote pour un item, ça vote pour tous les items, je sais ça peut te paraître imbécile de ma part, mais je suis pas très avancé alors je galère... Si chaque item était sur une page différente ça fonctionnerait nickel, mais là ils sont sur la même page.

  10. #10
    Invité
    Invité(e)
    Par défaut
    Montre le vrai code, alors...

    N.B. les fonctions s'incluent UNE seule fois : include_once

  11. #11
    Nouveau membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Décembre 2015
    Messages
    52
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2015
    Messages : 52
    Points : 25
    Points
    25
    Par défaut
    Le reste du code
    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
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    $nombre_votants = mysql_query("SELECT id FROM analyses WHERE id_page = '".mysql_real_escape_string($id_vote)."' ");
     
    $total_vote = mysql_num_rows($nombre_votants);
     
    if($total_vote != 0){
     
    }
     
    $calcul_vote1 = mysql_query("SELECT SUM(note1) AS totalmoyenne1 FROM analyses WHERE id_page = '".mysql_real_escape_string($id_vote)."'");
     
    $data1 = mysql_fetch_array($calcul_vote1);
     
    $total_calcul_vote1 = $data1['totalmoyenne1'];
     
     
    if($total_vote != NULL && $total_calcul_vote1 != NULL ){
     
        $moyenne1 = ($total_calcul_vote1/$total_vote);
     
    	$total_moyenne = (float) $moyenne1;
     
    	mysql_query ("UPDATE analyses SET moy='".(float)$total_moyenne."' WHERE id_page = '".mysql_real_escape_string($id_vote)."'");
     
    	mysql_query ("UPDATE analyses SET moy_1='".(float)$moyenne1."' WHERE id_page = '".mysql_real_escape_string($id_vote)."'");
     
    	$moyenne = number_format( $total_moyenne / 1, 1, ',', '') ;
     
    	$moyenne1 = number_format($total_calcul_vote1/$total_vote, 1, ',', '');
     
     
    if ($moyenne1 != 0){
    echo ' <div class="deuxieme">
    			Note : <h3 class="result"><span>'.str_replace(',0','',$moyenne1).'/5</span></h3> 
    			sur <b>'.$total_vote.'</b> votant(s)
    	</div><hr>
     
    			'; 
     
     
    		}else{
     
             echo "";
     
        }
     
    }
     
    }
     
    ?>
    Tu va peut-être avoir du mal à visualiser car mes variables ont des noms assez similaires, mais voilà !

  12. #12
    Nouveau membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Décembre 2015
    Messages
    52
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2015
    Messages : 52
    Points : 25
    Points
    25
    Par défaut
    Oui c'est en effet include_once que j'utilisais pour en mettre plusieurs, donc.. aurais-tu une idée de quelle est la solution..? Ne m'abandonne pas stp...

  13. #13
    Nouveau membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Décembre 2015
    Messages
    52
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2015
    Messages : 52
    Points : 25
    Points
    25
    Par défaut
    Tout ce dont j'ai besoin c'est de donner un name différent à chaque submit, enfin je crois, c'est pour ça que je croyais trouver du javascript qui me dépannerait.

  14. #14
    Invité
    Invité(e)
    Par défaut
    Regarde MON code : j'ai mis un input hidden.

  15. #15
    Nouveau membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Décembre 2015
    Messages
    52
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2015
    Messages : 52
    Points : 25
    Points
    25
    Par défaut
    Ta façon de faire doit fonctionner c'est certain, mais je ne saurais trop comment migrer de mon code à ton code, car j'aurais beaucoup de choses à modifier... et ce n'est pas les items que je voudrais mettre en hidden mais plutôt l'action des bouton submit qui ne sont pas cliqués.

  16. #16
    Invité
    Invité(e)
    Par défaut
    ??

    Tu n'a jamais envisagé que ça puisse être ta méthode et ta logique qui sont en cause ?

    D'ailleurs, qu'espères-tu de JavaScript ?
    Ce n'est pas une baguette magique...

  17. #17
    Nouveau membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Décembre 2015
    Messages
    52
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2015
    Messages : 52
    Points : 25
    Points
    25
    Par défaut
    Et bien ma méthode fonctionne parfaitement lorsqu'il y a un seul item dans la page, alors je suis à un détail près d'avoir le bon code, mais si il faut absolument le changer au complet alors je m'y résignerai, mais j'avais travaillé fort à concocter tout ça.

  18. #18
    Nouveau membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Décembre 2015
    Messages
    52
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2015
    Messages : 52
    Points : 25
    Points
    25
    Par défaut
    Bref, tu as l'air de bien t'énerver si je me fie à ta façon de m'écrire, je croyais que c'était amical ce site d'entraide...

  19. #19
    Invité
    Invité(e)
    Par défaut
    Je t'ai donné une piste à suivre...

    Je ne vois pas en quoi c'est inamical...

  20. #20
    Nouveau membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Décembre 2015
    Messages
    52
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2015
    Messages : 52
    Points : 25
    Points
    25
    Par défaut
    J'ai beau tout essayer en rapport à ton code, mais mes connaissances sont trop limitées pour y arriver, je crois que je vais déclarer forfait et mettre un item par page, c'est ultra laid mais ça fonctionne...

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. [MySQL] Plusieurs boutons dans une même page
    Par phpines dans le forum PHP & Base de données
    Réponses: 6
    Dernier message: 14/04/2009, 15h03
  2. Réponses: 0
    Dernier message: 01/07/2008, 16h16
  3. [XHTML] comment déclarer plusieurs doctypes dans une même page
    Par elsapascal dans le forum Balisage (X)HTML et validation W3C
    Réponses: 1
    Dernier message: 21/06/2008, 11h20
  4. Réponses: 11
    Dernier message: 07/08/2007, 17h11

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