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

PHP & Base de données Discussion :

Checkbox utilisation en php


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2012
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2012
    Messages : 36
    Par défaut Checkbox utilisation en php
    Bonsoir à tous,
    j'ai essayer de l'aide sur le sujet récemment posté avant d'ouvrir le miens mais rien n'a faire.

    Je vous explique mon but.

    Je veux faire un commerce, j'ai déjà réussi a faire la vente afficher le résultat des vente, cependant j'arrive pas à faire l'achat j'arrive pas à me servir des checkbox dans ce cas là.

    J’obtiens cette erreur :

    Warning: addslashes() expects parameter 1 to be string, array given in /home/qkmkhwcf/public_html/testbis/fonctions.php on line 4

    Voici mon code :

    Code page d affichage : 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
    		echo "
    		<form method='post' action='acheterressources.php' enctype='multipart/form-data'>";
    		while($data=mysql_fetch_assoc($requetes))
    			{          
    			    echo
    				   "
     
    		<table summary='Vente de ressource par Etat'>
     
     
     
     
     
     
    		    <tbody>
    			<tr>
    			    <td id='ff2' headers='nav' scope='col'style=' width: 2px; height: 10px; background-color: #4B7CAC' ; ><input align='center' id=''  type='checkbox' name='coche[]' value='1'; /></td> <td id='ff2' headers='nav' scope='col'style=' width: 124px; height: 10px; background-color: #4B7CAC;' >{$data["id_vente"]}</td>
     
    			    <td id='ff2' headers='nav' scope='col'style=' width: 150px; height: 10px; background-color: #4B7CAC;'>{$data["Quantite"]}</td>
    			     <td id='ff2' headers='nav' scope='col'style=' width: 150px; height: 10px; background-color: #4B7CAC;'>{$data["id_ressource"]}</td>
    			    <td id='ff2' headers='nav' scope='col'style=' width: 149px; height: 10px; background-color: #4B7CAC;'>{$data["prix"]}</td>
    			    <td id='ff2' headers='nav' scope='col'style=' width: 149px; height: 10px; background-color: #4B7CAC;'>{$data["voulu"]}</td>
     
    			</tr>
    		   </table> ";}
    		   echo"<input align='center' id='' name='ok' type='submit' value='acheter' /></form>";

    Voilà je vous remercie d'avance.

  2. #2
    Membre averti
    Inscrit en
    Février 2007
    Messages
    35
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 35
    Par défaut
    Bonjour Tenuin,

    Je pense qu'il faudrait tout d'abord un peu mieux structurer ton code pour le rendre plus lisible (pour les lecteurs potentiels mais aussi pour toi ).

    L'erreur mentionnée signifie que tu utilises un tableau comme paramètre avec addslashes alors qu'il s'attend à recevoir une chaine de caractères, mais vu que tu ne montres pas le fichier /testbis/fonctions.php on peut pas faire grand chose à ce niveau.

    Sinon pour la checkbox, je vais pas refaire tout ton code mais ce ne serait pas un truc comme cela que tu cherches à faire ?

    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
     
    <?php>
     
    	// ## Exemple de retour de $data=mysql_fetch_assoc($requetes):	
    	$data=array(1=>"val1",2=>"val2",3=>"val3",4=>"val4");
    	// ##
     
    	echo "<form method='post' action='' enctype='multipart/form-data'>";
     
    		//  ## Valeur de retour de $_POST
    		echo '<pre>'.print_r($_POST).'</pre>'; // *****
     
    		foreach($data as $key=>$val)
    			{          
    			    echo '<table summary="Vente de ressource par Etat">'."\n"
    				.'<tbody>'."\n"
    				.'<tr>'."\n"
    					."<td id='ff2' headers='nav' scope='col'style=' width: 2px; height: 10px; background-color: #4B7CAC'>"."\n"
    						."<input align='center' id=''  type='checkbox' name='coche[]' value=".$key." />"."\n"
    					.'</td>'."\n"
    					."<td id='ff2' headers='nav' scope='col'style=' width: 124px; height: 10px; background-color: #4B7CAC' >".$key."</td>"."\n"
    					."<td id='ff2' headers='nav' scope='col'style=' width: 150px; height: 10px; background-color: #4B7CAC'>".$val."</td>"."\n"
    	 			.'</tr>'."\n"
    			   .'</table>'."\n";
    			;}
     
    			echo "<input align='center' id='' name='ok' type='submit' value='acheter' />"."\n"
    		.'</form>'."\n";
    ?>

  3. #3
    Membre expérimenté
    Profil pro
    Développeur informatique
    Inscrit en
    Février 2003
    Messages
    152
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2003
    Messages : 152
    Par défaut
    Mise au point numéro 1: Ton code est illisible, commence par séparer php et html tu y gagnera grandement en lisibilité, il n'y a aucun interêt à echo du html, aucun, c'est même contre productif.

    Pour répondre à la question, sans ton code php je ne peux que suposer mais il semble que tu fasse

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $qquechose = addslashes($_POST['coche']);
    Sache juste que dans le cas de checkbox multiples, $_POST['coche'] renverra un tableau de toutes les options cochés. Il te faudra donc boucler le tableau pour récuperer toutes les options choisies par l'utilisateur.

  4. #4
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2012
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2012
    Messages : 36
    Par défaut
    Merci de vos réponses, on m'a souvent dit que mon code était salle, j'essaye d'améliorer ça.

    En fait je veux récupérer la ligne du tableau de la checkbox, les valeur viennent de ma base de donné.

  5. #5
    Membre expérimenté
    Profil pro
    Développeur informatique
    Inscrit en
    Février 2003
    Messages
    152
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2003
    Messages : 152
    Par défaut
    Citation Envoyé par Tenuin Voir le message
    En fait je veux récupérer la ligne du tableau de la checkbox, les valeur viennent de ma base de donné.
    La ou les valeurs puisqu'on peut cocher plusieurs checkbox sont dans $_POST['coche'] qui est un tableau.

  6. #6
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2012
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2012
    Messages : 36
    Par défaut
    Merci à tous de vos réponse, j'ai cherché un peu et j'ai trouvé une solution avec vos réponses mais une autre viens de se poser.
    J'ai essayer d'améliorer mon 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
    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
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
     
    <?php
            session_start();
            require_once('config.php');
            require_once('verifications.php');
            $titre_page='le titre de la page';
            include_once('haut.php');
            include ('nombre_online.php'); 
     ?>
     
    <?php
            include ('menu.php');
            ?>
            <?php
            ///Jointure entre ressources joueurs pseudo et ressource commerce ////
     
            $ID_joueur = $id;
     
            $query_selection_ressources = '
    
            SELECT      	commerce.id_joueur,
    		        commerce.id_vente,
                            commerce.id_ressource,
                            commerce.Quantite,
                            commerce.prix,  
                            commerce.voulu            
    		
            FROM            commerce
    
    
            ';
            $requetes = mysql_query( $query_selection_ressources ) or die( mysql_error() );
    		        //FIN//
    ?>		
     
     
     
    <?php
     
            echo"<div id='moncadreachat'>
            
                    <table summary='Vente de ressource par Etat'>
    
                            <thead>
                                    <tr>
                                            <th id='ff2' headers='nav' scope='col' style=' width: 151px; height: 10px; background-color: #B572C6;'>Vendeur</th>
                                            <th id='ff2' headers='nav' scope='col'style=' width: 150px; height: 10px; background-color: #B87AC7;'>Quantit&eacute;e</th>
                                            <th id='ff2' headers='nav' scope='col'style=' width: 150px; height: 10px; background-color: #A66EC1;'>Type de ressource</th>
                                            <th id='ff2' headers='nav' scope='col'style=' width: 149px; height: 10px; background-color: #AD4FC4;'>Taux</th>
                                            <th id='ff2' headers='nav' scope='col'style=' width: 148px; height: 10px; background-color: #A9469F;'>Ressource demand&eacute;e</th>
                                          
                                          
                                    </tr>
                                    
                            </thead> 
            ";
     
            echo "
            
                    <form method='post' action='acheterressources.php' enctype='multipart/form-data'>";
     
                    while($data=mysql_fetch_assoc($requetes))
     
                    {			
                            foreach ($data as $box) 
                            {        
                                echo
                                       "
    	
                                            <table summary='Vente de ressource par Etat'>
                                                 
                                                <tbody>
                                                    <tr>
                                                        <td id='ff2' headers='nav' scope='col'style=' width: 2px; height: 10px; background-color: #4B7CAC' ; >
                                                        <input align='center' type='checkbox' name='coche[]' value='$box'; /></td> 
                                                        
                                                        <td id='ff2'headers='nav'scope='col'style=' width: 124px; height: 10px; background-color: #4B7CAC ;' >
                                                        {$data["id_vente"]}</td>
                                                        
                                                        <td id='ff2' headers='nav' scope='col'style=' width: 150px; height: 10px; background-color: #4B7CAC ;'>
                                                        {$data["Quantite"]}</td>
                                                        
                                                         <td id='ff2' headers='nav' scope='col'style=' width: 150px; height: 10px; background-color: #4B7CAC ;'>
                                                         {$data["id_ressource"]}</td>
                                                         
                                                        <td id='ff2' headers='nav' scope='col'style=' width: 149px; height: 10px; background-color: #4B7CAC ;'>
                                                        {$data["prix"]}</td>
                                                        
                                                        <td id='ff2' headers='nav' scope='col'style=' width: 149px; height: 10px; background-color: #4B7CAC ;'>
                                                        {$data["voulu"]}</td>
                                                       
                                                    </tr>
                                               </table> "
                            ;}
     
                    ;}
     
                                                                    echo"<input align='center' id='' name='ok' type='submit' value='acheter' /></form>";
     
     
    ?>
    Dit moi s'il est plus propre (désolé si ça rentre pas sur votre écran, je travail sur un grand écran)

    Je récupère ce code avec celui ci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    <?php
            session_start();
            require_once('config.php');
            require_once('verifications.php');
    ?>
     
    <?php
            $coche = $_POST['coche'];
            print_r($coche);
    ?>
    Tout marche niquel sauf que à l'affichage j'ai

    Je dois cocher les 6 colonnes pour avoir tout les valeurs d'une ligne.

    Je sais d’où viens l'erreur mais je sais pas comment la corriger.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
                    while($data=mysql_fetch_assoc($requetes))
     
                    {			
                            foreach ($data as $box) 
                            {
    Je suis bien obligé d'indiquer que $data est le résultat de ma requette sinon ça fonctionne pas

    Voilà merci d'avance.

Discussions similaires

  1. Utiliser plusieurs php.ini
    Par Wookai dans le forum Apache
    Réponses: 2
    Dernier message: 21/03/2008, 05h10
  2. [Sécurité] utiliser plusieurs php.ini
    Par PAYASS59 dans le forum Langage
    Réponses: 1
    Dernier message: 11/05/2006, 16h33
  3. utilisation du php, comment coder ?
    Par arnolem dans le forum Langage
    Réponses: 8
    Dernier message: 05/04/2006, 13h25
  4. Utilisation de PHP comme système de template
    Par crazydiver_e2 dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 25/01/2006, 15h48
  5. Date à utiliser en php
    Par benny7 dans le forum MS SQL Server
    Réponses: 6
    Dernier message: 31/08/2005, 11h16

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