Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
jquery未显示在POST中的复选框值集_Jquery_Html - Fatal编程技术网

jquery未显示在POST中的复选框值集

jquery未显示在POST中的复选框值集,jquery,html,Jquery,Html,我在网上找了一个多小时,什么也没找到。我得到了一些简单的复选框,用一个小技巧来设置它们的样式,经典的隐藏属性和带有样式的标签。没什么特别的。 我只想通过POST发送这些复选框值/选中状态以进行处理。 问题是,每当我使用jQuery、onClick更改这些值时,检查器都会显示更改,但在POST中,输入不再存在。 我已尝试使用$.prop()设置“checked”属性。它为检查员工作,但在岗位上不起作用。 然后,我改为使用值,将所有复选框设置为“选中”,并使用jQuery将值从1更改为0,然后再更改

我在网上找了一个多小时,什么也没找到。我得到了一些简单的复选框,用一个小技巧来设置它们的样式,经典的隐藏属性和带有样式的标签。没什么特别的。 我只想通过POST发送这些复选框值/选中状态以进行处理。 问题是,每当我使用jQuery、onClick更改这些值时,检查器都会显示更改,但在POST中,输入不再存在。 我已尝试使用$.prop()设置“checked”属性。它为检查员工作,但在岗位上不起作用。 然后,我改为使用值,将所有复选框设置为“选中”,并使用jQuery将值从1更改为0,然后再更改。 检查器显示更改的值,但POST不显示任何内容

以下是HTML表单:

<form action="./ajax/process.php" enctype="multipart/form-data" method="post" id="admEmailParameteres1">
                    <input type="hidden" name="procesare" value="adm-process-parameters">

                    <input type="checkbox" id="sendConfEmailToClient" name="sendConfEmailToClient" value="<?= ($options['email_conf'] == 1 ? 1:0) ?>" class="hidden" checked>
                    <label for="sendConfEmailToClient" class="as-link tip label" onClick="toggleCheckSimple(this)" title="Trimite email de confirmare catre client la plasarea comenzii."><i class="fa fa-check label-check <?= ($options['email_conf'] == 1 ? 'active':'') ?>"></i> Client - email de confirmare la plasarea comenzii</label><br>

                    <input type="checkbox" id="sendAdvConfEmailToClient" name="sendAdvConfEmailToClient" value="<?= ($options['email_conf_sumar'] == 1 ? 1:0) ?>" class="hidden" checked>
                    <label for="sendAdvConfEmailToClient" class="as-link tip label" onClick="toggleCheckSimple(this)" title="Adauga si sumarul comenzii la email-ul de confirmare, trimis catre client la plasarea comenzii."><i class="fa fa-check label-check <?= ($options['email_conf_sumar'] == 1 ? 'active':'') ?>"></i> Client - adauga sumarul la email, la plasarea comenzii</label><br>


                    <input type="submit" class="btn btn-sm btn-success mb-5 " value="Salveaza modificarile" data-form="admEmailParameteres">
                </form>
}

在PHP端,如果我调用:

echo '<pre>';
        print_r($_POST);
        echo '</pre>';
echo';
打印(邮政美元);
回声';

如果使用jQuery更改了复选框,则复选框不存在。如果你不碰它们,它们就在那里。对我来说非常奇怪和令人不快,因为我不是一个初学者。无法解决此问题。

复选框始终需要html中的值。但只有选中复选框,该值才会发送到php。因此,从代码中删除
,并仅当$options['email_conf']==1时设置
checked
属性

这将是您的代码:

<label for="myId"></label>
<input type="checkbox" id="myId">

当您为标签指定另一个元素的id作为它的
for
属性时,如果用户单击该标签,它将充当用户单击另一个元素的角色。通过这种方式,您可以使单击标签切换复选框、选择单选按钮或将焦点置于关联的文本字段。将此逻辑作为javascript方法的一部分是不必要的


参考

检查这些复选框并验证值是否已设置。无论值是否已设置,您都可以在代码检查器中看到它。我不明白为什么您的切换中有if/else逻辑。标签上的
将导致单击标签的行为就像单击复选框本身一样,因此应该已经有了一个复选框切换。Taplar,您可能有一些东西。等一下,塔普拉,你让我开心。我不知道为什么我在那里用if/else,但那是造成整个缅因海姆的原因。非常感谢。请把它作为一个答案贴出来。一开始就这么做了,这是合乎逻辑的事情,没有用,也不知道为什么。我会再试一次,也许我错过了什么,谁知道呢。好的,现在我的代码是:
<input type="checkbox" id="sendConfEmailToClient" name="sendConfEmailToClient" value="1" class="hidden" <?= echo ($options['email_conf'] == 1) ? 'checked' : '';  ?>>
<label for="myId"></label>
<input type="checkbox" id="myId">