作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有这些复选框用于识别(如果选中)应该向相应的客户发送电子邮件,它应该被预先检查。
但是当它被预先选中时,然后当我取消选中一个复选框(例如 multi payment_email [1])时,当提交给 PHP 时,未设置的就是最后一个索引 multi payment_email [4]。
list_ payments.php
:
<form method="POST">
<?php while($row = mysqli_fetch_array($selectQuery) { ?>
<input type="text" name="multipayment_name[]" required/>
<input type="checkbox" name="multipayment_email[]" checked />
<?php } ?>
</form>
SUBMIT_ payment.php:
$names = $_POST['multipayment_name'];
$emails = $_POST['multipayment_email'];
foreach ($names as $key => $name)
{
$email = isset($emails[$key]) ? 1:0;
$query = "INSERT INTO payments() VALUES (NULL, '$name', $email)";
$response['message'] .= $query."<br/>";
}
die(json_encode($response));
因此,当我提交表单时,这就是输出(假设我取消选中了 5 个复选框中的第二个索引):
"INSERT INTO payments() VALUES (NULL, '1 waw', 1)"
"INSERT INTO payments() VALUES (NULL, '2 wew', 1)"
"INSERT INTO payments() VALUES (NULL, '3 wiw', 1)"
"INSERT INTO payments() VALUES (NULL, '4 wow', 1)"
"INSERT INTO payments() VALUES (NULL, '5 wuw', 0)"
应该是
“INSERT INTO payment() VALUES (NULL, '2 wew', 0)”
有什么启示吗?
最佳答案
试试这个:
<form method="POST">
<?php $idx = 0; ?>
<?php while($row = mysqli_fetch_array($selectQuery)): ?>
<input type="text" name="rows[<?php echo $i; ?>][name]" required/>
<input type="checkbox" name="rows[<?php echo $i; ?>][email]" checked />
<?php ++$idx; ?>
<?php endwhile; ?>
</form>
因此,如果取消选中第三个复选框,您将获得以下格式的 $_POST 数据:
array(
'rows' => array(
array(
'name' => 'the value of name 1',
'email' => 'on'
),
array(
'name' => 'the value of name 2',
'email' => 'on'
),
array(
'name' => 'the value of name 3'
)
)
)
未选中的复选框将取消设置该字段且不会发布,从那里您可以轻松地进行 isset
检查以了解它是否已选中。
$rows = $_POST['rows'];
foreach ($rows as $row) {
$email = isset($row['email') ? 1 : 0;
$name = $row['name'];
$query = "INSERT INTO payments() VALUES (NULL, '$name', $email)";
$response['message'] .= $query."<br/>";
}
但请注意此代码容易受到 SQL 注入(inject)的影响。由于这超出了这个问题的范围,所以我们不要在这里深入讨论:)
关于javascript - 复选框顺序不正确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41628953/
我是一名优秀的程序员,十分优秀!