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