Page 1 sur 1

Tableau $_GET envoyé par des checkbox

Posté : 09 nov. 2007, 17:10
par agité
Bonjour,

Voila j'ai un script qui envoie les données de mes checkbox sous la forme de list[] par methode $_GET

Maintenant je dois faire une fonction qui me permet d'avoir la liste de tout les list[] pour les faire passer dans une fonction.

en fait la fonction est du type fonction_truc(array()); avec dans l'array la liste de tout les elements de mon list[]

j'ai tenter de faire un fonction_truc(array($_REQUEST['list'])); mais il ne fonctionne pas plus.

j'ai tenter de faire des boucles foreach avec array push style :

$tab = array();
for($i = 0; $i < $Count_list; $i++){ 
array_push($tab,"../**/".$_GET['list'][$i]);
}
Rien de plus je n'arrive pas a recuperer la liste des elements même en faisant un

fonction_truc($_GET['list']) ou fonction_truc(array($_GET['list']))

Posté : 09 nov. 2007, 17:32
par Ryle
Je comprend pas vraiment ce que tu demandes, mais si toutes tes cases ont pour nom list[], alors $_GET['list'] sera un tableau contenant les valeurs des cases qui ont été cochées.

Du coup pour récupérer les valeurs une à une suffit d'une simple boucle foreach :
// pour chaque élément du tableau, on le stocke dans $element et on exécute le code 
foreach ($_GET['list'] as $element) { 
  echo $element; // affichage de l'élément ou appel de fonction ou ce que tu voudras :)
  ...
}

Posté : 09 nov. 2007, 17:40
par agité
Je comprend pas vraiment ce que tu demandes, mais si toutes tes cases ont pour nom list[], alors $_GET['list'] sera un tableau contenant les valeurs des cases qui ont été cochées.

Du coup pour récupérer les valeurs une à une suffit d'une simple boucle foreach :
// pour chaque élément du tableau, on le stocke dans $element et on exécute le code 
foreach ($_GET['list'] as $element) { 
  echo $element; // affichage de l'élément ou appel de fonction ou ce que tu voudras :)
  ...
}
Merci pour ta reponse :)

En fait j'utilise une fonction d'une bibliotheque PHP pour la concaténation de PDF (oui j'ai aussi poster sur PHP5 pour la concaténation et maintenant ca marche !). Le probleme est que la fonction ressemble a ca :
class concat_pdf extends FPDI {

    var $files = array();

    function setFiles($files) {
        $this->files = $files;
    }

    function concat() {
        foreach($this->files AS $file) {
            $pagecount = $this->setSourceFile($file);
            for ($i = 1; $i <= $pagecount; $i++) {
                 $tplidx = $this->ImportPage($i);
                 $s = $this->getTemplatesize($tplidx);
                 $this->AddPage($s['h'] > $s['w'] ? 'P' : 'L');
                 $this->useTemplate($tplidx);
            }
        }
    }
}
Maintenant il faut rentrer les differents fichiers la dedans :

$pdf =& new concat_pdf();

$tab = array("../_medias/doc/programme/".$_REQUEST['list']);


foreach($_GET['list'] as $Element)
{ 
$pdf->setFiles($Element);
}
$pdf->concat();

$pdf->Output("PdfProgramme_".$_SESSION['login']."_".$_GET['Id'].".pdf", "D");
Voila seulement le foreach que tu m'indique ne marche pas et je comprends pas comment faire car apparement il recreer un tableau dans la fonction.

Et comme le $_GET['list'] est déjà un tableau :/

une idée ?

Posté : 09 nov. 2007, 17:43
par agité
ou par
$tab = array("../_medias/doc/programme/".$_REQUEST['list']);

foreach($tab as $Element)
{ 
$pdf->setFiles($Element);
}

Posté : 09 nov. 2007, 18:21
par agité
avec cette méthode :
foreach($_GET['list'] as $Liste)
{
$Liste = "../_medias/doc/programme/".$Liste;
$pdf->setFiles(array($Liste));
}
Il ne me retourne que le premier element du tableau, enfin il concaténe seulement le premier fichier...

Posté : 09 nov. 2007, 18:25
par Truc
Pourquoi pas un POST ?

Que retourne :
print_r($_GET);
ça "../_medias/doc/programme/" je le mettrai bien dans la classe (dans setFiles)

Pourquoi passer un tableau en paramètre
$pdf->setFiles(array($Liste)); 
je pense que ce qui est attendu est un string (donc juste $List) pour le mettre ensuite dans le tableau "files" de la classe.

Posté : 09 nov. 2007, 18:43
par agité
Pourquoi pas un POST ?

Que retourne :
print_r($_GET);
ça "../_medias/doc/programme/" je le mettrai bien dans la classe (dans setFiles)

Pourquoi passer un tableau en paramètre
$pdf->setFiles(array($Liste)); 
je pense que ce qui est attendu est un string (donc juste $List) pour le mettre ensuite dans le tableau "files" de la classe.
Quel difference a passer les parametres en POST plutôt qu'en GET ?

par GET je peux voir exactement les données envoyées sans print_r

Pour le lien je ne vois pas ou le rajouter dans la classe puisque $files est un tableau.

Posté : 09 nov. 2007, 18:50
par agité
Pourquoi pas un POST ?

Que retourne :
print_r($_GET);
ça "../_medias/doc/programme/" je le mettrai bien dans la classe (dans setFiles)

Pourquoi passer un tableau en paramètre
$pdf->setFiles(array($Liste)); 
je pense que ce qui est attendu est un string (donc juste $List) pour le mettre ensuite dans le tableau "files" de la classe.
en utilisant :
foreach($_GET['list'] as $Liste)
{
$Liste = "../_medias/doc/programme/".$Liste;
$pdf->setFiles(array($Liste));
}
Il ne me renvois toujours que le premier element du tableau

Posté : 09 nov. 2007, 20:17
par Truc
:lol:
Oui peut être... je n'ai jamais utilsé cette "fonction" de concaténation de pdf donc je fais des suppositions pour voir si on avance or si tu ne réponds pas aux questions c'est sur qu'on avancera pas.

En post pour éviter que n'importe qui puisse "facilement" ajouter n'importe quoi à la suite de ton url.

Je n'ai jamais parlé de lien :?

Posté : 10 nov. 2007, 22:36
par agité
:lol:
Oui peut être... je n'ai jamais utilsé cette "fonction" de concaténation de pdf donc je fais des suppositions pour voir si on avance or si tu ne réponds pas aux questions c'est sur qu'on avancera pas.

En post pour éviter que n'importe qui puisse "facilement" ajouter n'importe quoi à la suite de ton url.

Je n'ai jamais parlé de lien :?
J'utilise une fonction que empeche de changer l'url.