Aller au contenu

php form et loop


Sujets conseillés

Posté

Bonjour,

comme dans mon précédent sujet, j'essaye de transformer mes pages dynamiques en statiques. J'ai trouvé une technique avec ob_start() qui fonctionne très bien mais j'aimerais automatiser la création des pages. J'avais pensé avec un petit formulaire qui me permet de recréer les pages que j'ai envie avec un checkbox mais comme je me débrouille pas trop avec les formulaires, j'arrive juste à créer la dernière page sélectionné dans mon formulaire et non toutes celles avant.

<form action="createtest.php" method="post"> 
<select name="category">
<option>test1</option>
<option>test2</option>
</select>
<select name="group">
<option>photos</option>
<option>videos</option>
</select>
page 1 : <input type="checkbox" value="1" name="page"><br />
page 2 : <input type="checkbox" value="2" name="page"><br />
page 3 : <input type="checkbox" value="3" name="page"><br />
page 4 : <input type="checkbox" value="4" name="page"><br />
<input type="submit" />
</form>

Je récupère les variables avec $_POST. Si je sélectionne, par exemple, toutes les pages, j'arrive juste à créer la page 4 et pas les autres avant.

Je suppose que c'est un problème de loop mais je comprend pas comment l'implanter.

Merci pour toute aide car je suis perdu la :).

Posté (modifié)

<?php
ob_start()

include 'connect.inc.php';

$page = $_POST['page'];
$categoryid = $_POST['category'];
$groupid = $_POST['group'];

$max_results = 40;
$from = (($page * $max_results) - $max_results);
$query = mysql_query("SELECT tl.*, tc.enabled, tc.ID FROM st_galleries tl LEFT JOIN st_galleries_1 tc ON tl.ID = tc.ID WHERE tl.category = '$categoryid' AND tl.groupid = '$groupid' AND tc.enabled = '1' ORDER BY tl.id DESC LIMIT $from, $max_results") OR die(mysql_error());
$resultcount = mysql_num_rows($query);
$inputstringunres = "SELECT tl.id, tc.id FROM st_galleries tl LEFT JOIN st_galleries_1 tc ON tl.ID = tc.ID WHERE category = '$categoryid' AND groupid = '$groupid' AND tc.enabled = '1'" OR die(mysql_error());
$selectunres = mysql_query($inputstringunres);
$resultcountunres = mysql_num_rows($selectunres);
$total_results = $resultcountunres;
$total_pages = ceil($total_results / $max_results);
$a=0;
?>
Un peut de html ...
<?php
while ($donnees = mysql_fetch_array($query) )
{
?>
<div class="photos">Code qui me permet de créer 40 thumbs comme annoncé avec $max_results</div>
<?php
++$a;
}
?>
<div id="pagination">
<?php
if($page > 1){
$prev = ($page - 1);
echo "<a href=\"$prev.html\">< Previous</a> ";
}
for($i = 1; $i <= $total_pages; $i++){
if(($page) == $i){
echo "Page $i ";
} else {
echo "<a href=\"$i.html\"> $i</a> ";
}
}

if($page < $total_pages){
$next = ($page + 1);
echo "<a href=\"$next.html\">Next ></a>";
}

mysql_close($connectdb)
?>
<?php
$ob = ob_get_contents();
ob_end_clean();
$cwd = getcwd();
$file = "$cwd" .'/'. "$groupid/$categoryid/$page.html";
_AT_chmod($file,0755);
$fw = fopen($file, "w");
fputs($fw,$ob, strlen($ob));
fclose($fw);
die();
?>

Bien sur entre les ?> <?php il y a du HTML pour formater ma page mais en gros c'est ça.

Modifié par Meeuuh
Posté

Salut,

C'est un peu logique ...

$page = $_POST['page'];

Correspond à un checkbox et un checkbox ne peut avoir qu'une seule et unique valeur.

Transforme ton code html par :

page 1 : <input type="checkbox" value="1" name="page[]"><br />
page 2 : <input type="checkbox" value="2" name="page[]"><br />
page 3 : <input type="checkbox" value="3" name="page[]"><br />
page 4 : <input type="checkbox" value="4" name="page[]"><br />

Ensuite fais un var_dump($_POST['page']). Regardes la structure des résultats et comment tu peux les gérer.

Bon courage

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...