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

Bibliothèques et frameworks PHP Discussion :

[Smarty] Manipulation des cases à cocher avec Smarty


Sujet :

Bibliothèques et frameworks PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Septembre 2008
    Messages
    36
    Détails du profil
    Informations forums :
    Inscription : Septembre 2008
    Messages : 36
    Par défaut [Smarty] Manipulation des cases à cocher avec Smarty
    Bonjour tous le monde,
    Je viens de decouvrir Smarty tres recemment.
    Je souhaite ajouter une case a cocher dans un tableau. le tableau est bien affiché avec la case a cocher.

    Maintenant je veux faire un traitement pour les lignes sélectionnées ( cases cochées ) mais je n'arrive pas a récupérer le résultat de mes cases a cocher dans mon code PHP

    dans mon fichier tpl, j'ai utilisé un code html car je n'arrive pas a faire apparaitre les case a cocher par la fonction html_chokboxes :

    <input type="checkbox" name="selection" value="ProdS" />

    mais comment récupérer le résultat de la case a cocher ?

    j'ai essayé d'utiliser la fonction :
    echo $tpl->get_template_vars('selection');

    et je reçois le message d'erreur suivant :

    Fatal error: Call to a member function get_template_vars() on a non-object in E:\wamp\www\ext\synchro-prodSelec.php on line 39

    Merci pour votre aide

  2. #2
    Membre Expert
    Avatar de krachik
    Inscrit en
    Décembre 2004
    Messages
    1 964
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 964
    Par défaut
    Bonjour,
    Pour utiliser html_checkboxes c'est simple => http://www.smarty.net/docsv2/fr/lang...checkboxes.tpl

    Tu sais ce que fait get_template_vars() ?

    Pour récupérer les états des checkbox c'est juste une simple opération de récupération à la soumission du formulaire , peux-tu faire voir ton code html dans le template?

  3. #3
    Membre éprouvé
    Homme Profil pro
    Directeur technique
    Inscrit en
    Février 2011
    Messages
    146
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : Transports

    Informations forums :
    Inscription : Février 2011
    Messages : 146
    Par défaut
    même pas eu le tps de répondre lol =)

  4. #4
    Membre averti
    Inscrit en
    Septembre 2008
    Messages
    36
    Détails du profil
    Informations forums :
    Inscription : Septembre 2008
    Messages : 36
    Par défaut
    d'abord je vous remercie d'avoir me repondre assez vite.

    voici une partie de fichier tpl

    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
    {foreach item=row from=$produits}
    		<tr class="item">
    			<td>
    				<input type="checkbox" name="selection" value="ProdS" />
    			</td>
    			<td>
    				<a href="form_update_produit.php?id_produit={$row->id_produit}" class="action"><img src="{$server_path}extranet/Upload/Produits/Thumb/{$row->photo_produit}" alt="{$row->nom_produit}" title="{$row->nom_produit}"></a>
    			</td>
    			<td>
    				<a href="form_update_produit.php?id_produit={$row->id_produit}" class="action">{$row->libelle_produit}</a>
    			</td>
    			<td>
    				<a href="form_update_produit.php?id_produit={$row->id_produit}" class="action">{$row->nom_fournisseur}</a>
    			</td>
    			<td>
    				<a href="form_update_produit.php?id_produit={$row->id_produit}" class="action">{$row->code_produit}</a>
    			</td>
    			<td>
    				<a href="form_update_produit.php?id_produit={$row->id_produit}" class="action">{$row->nom_produit}</a>
    			</td>
    			  <td><!--
    				{assign var=prop value=""}
    				<table style="width: 100%">
    					{foreach from=$val item=val1}
    						{if $row->id_produit eq $val1->id_produit }
    							{if $val1->libelle_prop neq $prop }
    								{if $prop neq "" }													
    								.</td></tr>														
    								{/if}
    								<tr>						
    								<td valign="top">
    								<b>{$val1->libelle_prop} : </b><br/>
    								</td>
    								<td>					
    								{assign var=prop value=$val1->libelle_prop}
    							{else}
    								, 
    							{/if}
    						{/if}
    						{if $row->id_produit eq $val1->id_produit}
    							{$val1->valeur}
    						{/if}
    					{/foreach}
     
    et voici une partie du code de la fonction que je veux créer :
     
    ftp_putSelec($conn_id, $src_dirMedium, $dirMedium);      					 //synchronisation des produits
    ftp_putSelec($conn_id, $src_dirThumb, $dirThumb);		 					 // synchronisation des thumbs des produits
     
    function ftp_putSelec($conn_id, $src_dir, $dst_dir) {						//fonction de synchronisation
     
    //******
    	$d = dir($src_dir);										
        $condition = true;
    	// ICI je souhaite faire un foreach pour recuperer juste les cases cochées pour transferer le resultat du 2eme champs du tableau a $file
    	//foreach ($_POST['selection'] as "ProdS" ) {
    			echo $tpl->get_template_vars('selection');
    			$file = "test_commande.jpg";	//$_POST['photo_produit'];					//recuperation de l'image du produit à synchroniser
    	    	$upload = ftp_put($conn_id, $dst_dir."/".$file, $src_dir."/".$file, FTP_BINARY); // chargement
                if (!$upload) {												//si le chargement a rencontré un probleme
            					echo "FTP upload has failed! $file";
            					echo ("<br>");
            					$condition = false;
    						  } 
        		else {					 									//si le chargement a reussi OK
        		echo "Le fichier $file a &eacute;t&eacute; transf&eacute;r&eacute; sur le serveur $ftp_server"; 
            	echo ("<br>");
       				 }
     
    	// }
        $d->close();
     
    if($condition){															//avertissement de reussite de synchronisation
    				$etat_sync = "1";
    				$message = "Transmission terminée avec succès.";
    			  }
    else{
    $etat_sync = "2";														//avertissement de l'echec de synchronisation
    $message = "Un ou plusieurs fichiers n'ont pas été transmis.";
    }
    echo ("<br \>");
    echo $message;  														//affichage d'avertissement 
     
    }
     
    ftp_close($conn_id);
     
    ?>
    <input type="button" value="Fermer" onclick="window.close()"/>			<!-- Bouton fermer pour quiter la page -->
    J'ai deja consulté plusieurs fois la page mentionnée de html_checkboxes mais je n'ai pas arrivé a faire afficher les cases a cocher

  5. #5
    Membre averti
    Inscrit en
    Septembre 2008
    Messages
    36
    Détails du profil
    Informations forums :
    Inscription : Septembre 2008
    Messages : 36
    Par défaut
    j'ai trouvé la fonction get_template_vars() dans un forum et j'ai essayé de l'utiliser. c'est un peu bete Mais c'est comme ça

  6. #6
    Membre Expert
    Avatar de krachik
    Inscrit en
    Décembre 2004
    Messages
    1 964
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 964
    Par défaut
    html_checkboxes est pratique quand t'as un groupe case à cocher à utiliser et donc tu lui passera un tableau de données.

    tu dis que t'y arrives pas à les afficher, fais voir le code que tu utilises pour les afficher?

    Dans le code tpl que tu fourni j'ai vu que
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type="checkbox" name="selection" value="ProdS" />
    sur lequel tu itères sans même changer le value, ça devrait être name="selection[]" et la valeur qui va avec, enfin ça c'est que du HTML

    J'ai deja consulté plusieurs fois la page mentionnée de html_checkboxes mais je n'ai pas arrivé a faire afficher les cases a cocher
    Je ne sais pas quelle version de smarty tu utilises mais pour info dans la version 3.1.3 sortie récemment:
    - improvement html_checkboxes and html_radios to accept null- and object values, and label_ids attribute

Discussions similaires

  1. Réponses: 3
    Dernier message: 29/04/2015, 15h44
  2. Mise à jour avec des cases à cocher
    Par jiojio dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 25/02/2009, 12h53
  3. Sélection avec des case à cocher
    Par Harmony dans le forum IHM
    Réponses: 5
    Dernier message: 08/03/2007, 17h33
  4. [MySQL] Creer un formulaire avec un tableau et des cases à cocher ??
    Par shawn12 dans le forum PHP & Base de données
    Réponses: 8
    Dernier message: 04/04/2006, 11h23
  5. Problèmes avec des cases à cocher et une liste déroulante
    Par rob2-9 dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 25/01/2006, 11h52

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