附上我的代码图片。我试图传递名为' num'的任何按钮的index.php值(4或8)。单击选择Snacks.php并回显变量$ snacks。
问题是它只传递表格中的最后一个值输入(即8),无论我是否点击4或8.我颠倒了输入的顺序只是为了仔细检查,当我这样做时我无论我点击什么,都只能获得值4。
index.php上的输入
<div class="pricing-button">
<form method="POST" action="ChooseSnacks.php">
<input class="btn btn-primary btn-md btn-square" onclick="change('19.99')" type="text" value = "4" name="num[]" readonly></a>
<input class="btn btn-primary btn-md btn-square" onclick="change('25.00')" type="text" value = "8" name="num[]" readonly></a>
</div>
index.php上的提交按钮
<input class="btn btn-primary btn-lg btn-square" type="Submit" name="Submit" id="Submit" value='Submit'>
在chooseSnacks.php上启动会话
<?php
session_start();
$snacks = $_POST['num[]'];
?>
回显变量
<div class="categories">
<h3>Your Carepackage</h3>
<p> <?php echo $snacks; ?> Snacks Every <?php echo $snacksNum; ?> </p> </div
答案 0 :(得分:1)
你的input type是TEXT
,所以它会覆盖最后一个值。
如果您希望用户选择一个选项,您应该将类型更改为RADIO
,或者将值和名称设置为空白并使用javascript更改
答案 1 :(得分:1)
关于$_POST['num[]'];
,您需要从中删除[]
,因为您已在name="num[]"
中将其声明为数组。
然后,您需要使用foreach($_POST['num'] as $var)
并检查它们是否为空。
例如:
<div class="pricing-button">
<form method="POST" action="">
<input class="btn btn-primary btn-md btn-square" onclick="change('19.99')" type="text" value = "4" name="num[]" readonly></a>
<input class="btn btn-primary btn-md btn-square" onclick="change('25.00')" type="text" value = "8" name="num[]" readonly></a>
<input type="submit" name="Submit" value="Submit">
</div>
<?php
$inputs = !empty($_POST['num']) ? $_POST['num'] : array();
foreach($inputs as $value) {
echo $value . "<br>";
}
将回应:(经测试)
4 8
我不确定onclick="change('19.99')"
等应该做出什么反应,以及您开始会话的会话需要。