チェックボックスの結果を最後にレビューページに渡したい段階的なフォームがあります。
ステップ 1 と 2 にチェックボックスがありますが、ステップ 3 でこれらを表示するにはどうすればよいですか?
以下で実行しようとしましたが、結果をエコーアウトすることはできません。
<form class="form" method="POST" action="<?php the_permalink(); ?>">
<? if (!$_POST['step']) { ?>
<input type="hidden" name="step" value="1" />
<div class="steps" style="float:left;">
<p style="font-size:17px!IMPORTANT;"><b>Step 1 of 3</b></p>
</div>
<div class="progress-buttons" style="float:right;">
<button class="next" type="submit" name="submit">Next</button>
</div>
<div class="clear"></div>
<?php $posts = get_field('options');
if( $posts ):
$items = 0;
foreach( $posts as $post): // variable must be called $post (IMPORTANT)
setup_postdata($post); ?>
<p style="clear:right;float:right;margin-right:60px;">
<input type="checkbox" name="hardware[]" value="<?php the_title(); ?>">
Select</p>
<?php $items++; endforeach;
wp_reset_postdata(); // IMPORTANT - reset the $post object so the rest of the page works correctly
endif; ?>
</div>
</div>
<? } else if ($_POST['step'] == 1) {
foreach($_POST as $name => $value) {
if ($name == "hardware") {
$_SESSION[$name] = $_POST[$name];
} else if ($name <> "step") { echo "<input type=\"hidden\" name=\"$name\" value=\"$value\" />"; }
} ?>
<input type="hidden" name="step" value="2" />
<div class="steps" style="float:left;">
<p style="font-size:17px!IMPORTANT;"><b>Step 2 of 3</b></p>
</div>
<div class="progress-buttons" style="float:right;"> <a class="back" href="<?php the_permalink(); ?>?<?= $field ?>" >Back</a>
<button class="next" type="submit" name="submit">Next</button>
</div>
<?php $posts = get_field('accessories');
if( $posts ):
$items = 0;
foreach( $posts as $post): // variable must be called $post (IMPORTANT)
setup_postdata($post); ?>
<p style="clear:right;float:right;margin-right:60px;">
<input type="checkbox" name="accessories[]" value="<?php the_title(); ?>">
Select</p>
<?php $items++; endforeach;
wp_reset_postdata(); // IMPORTANT - reset the $post object so the rest of the page works correctly
endif; ?>
</div>
</div>
<? } else if ($_POST['step'] == 2) {
foreach($_POST as $name => $value) {
if ($name == "accessories") {
$_SESSION[$name] = $_POST[$name];
} else if ($name <> "step") { echo "<input type=\"hidden\" name=\"$name\" value=\"$value\" />"; }
} ?>
<input type="hidden" name="step" value="3" />
<div class="steps" style="float:left;">
<p style="font-size:17px!IMPORTANT;"><b>Step 3 of 3</b></p>
</div>
<div class="progress-buttons" style="float:right;"> <a class="back" href="<?php the_permalink(); ?>?<?= $field ?>" >Back</a>
<button class="next" type="submit" name="submit">Next</button>
</div>
<div class="clear"></div>
<p>System spec</p>
<?php
$hardware = $_POST['hardware'];
$accessories = $_POST['accessories'];
if( is_array($_SESSION['hardware']) ){
foreach ($_SESSION['hardware'] as $val) {
$hardwareresults .= $val.",\n";
}
}
if( is_array($_SESSION['accessories']) ){
foreach ($_SESSION['accessories'] as $val) {
$accessoriesresults .= $val.",\n";
}
}
?>
<ul>
<li><?php echo $hardwareresults; ?></li>
<li><?php echo $accessoriesresults; ?></li>
</ul>
<? } else if ($_POST['step'] == 3) { //do stuff ?>
Last step
<?php } ?>