PHP表单核对表显示“For:”标签而不是“Value:”

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (26)

我终于得到了一个用PHP工作的清单,但它列出了我输入的“值:”而不是“for:”我不能使用'value:'的原因是因为该值是一个总计得到的数字我想知道选择了哪个选项而不只是看到一个数字,

<input class="basic-config" type="checkbox" name="ch[]" id="basic-option1" value="100"><label for="basic-option1">option 1<span class="right-align">$100</span></label>

<input class="basic-config" type="checkbox" name="ch[]" id="basic-option2" value="200"><label for="basic-option2">option 2<span class="right-align">$200</span></label>

PHP如下:

if (isset($_POST['submit'])) {

$name = $_POST ['name'];
$mailFrom = $_POST ['mail'];
$website = $_POST ['website'];
$comments = $_POST ['comments'];
$basicAmount = $_POST ['basic-amount'];
$extras = "None";
if(isset($_POST["ch"]))
$extras = implode(", ", $_POST["ch"]);

$mailTo = "josh@myemail.com";
$headers = "From: ".$mailFrom; 
$txt = "\n
Basic Order Request. \n\n
From: $name \n\n
Email: $mailFrom \n\n
Website: $website \n\n
Comments: $comments \n\n
Extras: $extras \n\n
Total: $basicAmount";
}

如何让它列出勾选复选框的“for”或“id”名称,而不是列出“值”?

例如,这就是我想要的:

附加功能:选项1,选项2总计:300美元

这就是我现在所拥有的而不是我想要的东西:

额外:100,200总计:300美元

非常感谢任何帮助!

提问于
用户回答回答于

仅提交成功的控件(输入)且仅提供值。您可以使用该选项作为数组键:

<input type="checkbox" name="ch[Option 1]" value="100">
<input type="checkbox" name="ch[Option 2]" value="200">

然后获取这些键:

$extras = implode(", ", array_keys($_POST['ch']));

或者创建一个隐藏的输入数组并将它们配对(使用相同的键):

<input type="hidden" name="ex[0]" value="Option 1">
<input type="checkbox" name="ch[0]" value="100">
<input type="hidden" name="ex[1]" value="Option 2">
<input type="checkbox" name="ch[1]" value="200">

然后访问具有相应检查的选项:

$extras = implode(", ", array_intersect_key($_POST['ex'], $_POST['ch']));
用户回答回答于

只需将您的与您的ID相同,例如:

<input class="basic-config" type="checkbox" name="ch[]" id="basic-option1" value="Option 1"><label for="basic-option1">option 1<span class="right-align">$100</span></label>
<input class="basic-config" type="checkbox" name="ch[]" id="basic-option2" value="Option 2"><label for="basic-option1">option 2<span class="right-align">$200</span></label>

扫码关注云+社区

领取腾讯云代金券