Yo les copains,
Derrière ce titre un peu capricieux, se cache mon dénuement face à une seule (ou peut-être deux) ligne de code php pour obtenir… un tableau (oui, un array, pff). Voilà voilà, le html, le css je gère mais le php j'apprends par l'exemple ; je pense ne pas m'en sortir trop mal
mais là je bloque
.
Tout commence ici :
J'ai un formulaire (affiché par un module sous joomla) qui donne ceci en condensé et nettoyé des autres fonctions (checkboxes, select-all checkboxes avec jquery, etc) qui elles, tournent au poil.
Le formulaire
Le php qui reçoit les données du formulaire (download.php)
J'ai une fonction en en-tête du fichier php qui vérifie les checkboxes qui ont été sélectionnées
J'arrive bien à récupérer les "values" de chaque checkbox sélectionnée dans le formulaire mais je n'arrive pas à les obtenir sous le bon format. Pour une sélection des deux premiers checkboxes :
La ligne test 1 me donne les données en vrac :
La ligne test 2 me donne ceci :
La fonction (download.php)
L'objectif est d'obtenir les données sous le format suivant :
Ce qui me permet ensuite de "faire tourner" la fonction suivante qui fonctionne bien quand je teste en dur
En résumé
Donc voilà en résumé, avec ça :
je veux ça :
$files = array('path/file1.pdf','path/file2.pdf');
Ca doit pas être compliqué quand même, moi j'arrive pas
Maaaaaaaaarchi
Modifié par Tefnack (10 Jul 2012 - 15:59)
Derrière ce titre un peu capricieux, se cache mon dénuement face à une seule (ou peut-être deux) ligne de code php pour obtenir… un tableau (oui, un array, pff). Voilà voilà, le html, le css je gère mais le php j'apprends par l'exemple ; je pense ne pas m'en sortir trop mal


Tout commence ici :
J'ai un formulaire (affiché par un module sous joomla) qui donne ceci en condensé et nettoyé des autres fonctions (checkboxes, select-all checkboxes avec jquery, etc) qui elles, tournent au poil.
Le formulaire
<form name="downloadForm" method = "post" action= "download.php">
<input type="checkbox" name="chk[]" value="path/file1.pdf"><label>file1</label>
<input type="checkbox" name="chk[]" value="path/file2.pdf"><label>file2</label>
<input type="checkbox" name="chk[]" value="path/file3.pdf"><label>file3</label>
<input type="checkbox" name="chk[]" value="path/file4.pdf"><label>file4</label>
<button onclick="document.downloadForm.submit();" type="button">Downloads</button>
</form>
Le php qui reçoit les données du formulaire (download.php)
J'ai une fonction en en-tête du fichier php qui vérifie les checkboxes qui ont été sélectionnées
<?php
for($i=0;$i<count($_POST["chk"]);$i++){
if(trim($_POST["chk"][$i]) != "")
{
echo $_POST["chk"][$i]; // test 1
// ou
echo print_r ($_POST['chk'],true); // test 2
}
}
J'arrive bien à récupérer les "values" de chaque checkbox sélectionnée dans le formulaire mais je n'arrive pas à les obtenir sous le bon format. Pour une sélection des deux premiers checkboxes :
La ligne test 1 me donne les données en vrac :
path/file1.pdfpath/file2.pdf
par exempleLa ligne test 2 me donne ceci :
Array ( [0] => path/file1.pdf [1] => path/file2.pdf ) Array ( [0] => path/file1.pdf [1] => path/file2.pdf )
La fonction (download.php)
L'objectif est d'obtenir les données sous le format suivant :
$files = array('path/file1.pdf','path/file2.pdf');
Ce qui me permet ensuite de "faire tourner" la fonction suivante qui fonctionne bien quand je teste en dur
function zipdownload()
{
$files = array('path/file1.pdf','path/file2.pdf'); // test en dur
$zip = new ZipArchive;
$zip->open('Downloads.zip', ZIPARCHIVE::OVERWRITE);
foreach ($files as $file) {
$zip->addFile($file);}
$zip->close();
header('Content-type: application/zip');
header('Content-Disposition: attachment; filename=Downloads.zip');
header('Pragma: no-cache');
header('Expires: 0');
readfile('Downloads.zip');
echo $files;
exit;
}
zipdownload();
?>
En résumé
Donc voilà en résumé, avec ça :
<?php
for($i=0;$i<count($_POST["chk"]);$i++){
if(trim($_POST["chk"][$i]) != "")
{
// je mets quoi ?
}
}
je veux ça :
$files = array('path/file1.pdf','path/file2.pdf');

Ca doit pas être compliqué quand même, moi j'arrive pas
Maaaaaaaaarchi
Modifié par Tefnack (10 Jul 2012 - 15:59)