Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/79.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/36.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调用php_Php_Jquery_Codeigniter_Checkbox - Fatal编程技术网

如果复选框更改,请使用jquery调用php

如果复选框更改,请使用jquery调用php,php,jquery,codeigniter,checkbox,Php,Jquery,Codeigniter,Checkbox,我在页面上有一个简单的复选框,允许用户说他们是否希望接收电子邮件通知。我使用jquery在复选框更改时调用一些php代码。然而,我连调用jquery函数(单击复选框什么都不做)都没有运气,更不用说测试后端功能了 任何指出错误的帮助都将是巨大的。谢谢 复选框HTML: <input id="notify_checkbox" type="checkbox" value="y" name="notify"> 解决方案:下面的评论很有帮助,但不是最终的解决方案。解决方案是在我的代码周围添加

我在页面上有一个简单的复选框,允许用户说他们是否希望接收电子邮件通知。我使用jquery在复选框更改时调用一些php代码。然而,我连调用jquery函数(单击复选框什么都不做)都没有运气,更不用说测试后端功能了

任何指出错误的帮助都将是巨大的。谢谢

复选框HTML:

<input id="notify_checkbox" type="checkbox" value="y" name="notify">
解决方案:下面的评论很有帮助,但不是最终的解决方案。解决方案是在我的代码周围添加以下内容

$(document).ready(function() {
{);
为什么不使用
。单击()

另外,正如您在我的JSFIDLE示例中看到的,使用
.is(':checked')
而不是
attr('checked')

在对您的帖子发表评论后编辑


您确实应该在php中引用您的
$\u POST
值!我自己没有注意到,请注意你的控制器叫什么名字?你需要把它放在URL里

 $.post("/controller/update_notify", ...

问题在于jQuery1.6中对
attr
函数的重新定义,以及属性和属性之间的差异

对于属性(通过检索),无论元素是否实际被选中,
checked=“checked”
的值或其缺失保持不变

通过属性(从jquery1.6开始使用检索),可以找到元素的实际状态。这相当于检查元素的
checked
属性(这更可取,因为您不需要进行新的jQuery选择)。最佳解决方案如下:

if (this.checked) {
请参见显示以下内容的jsFiddles:


在PHP中,您应该引用数组键:
$\u POST['checked']
$\u POST['email']
。谢谢。我在您的JSFIDLE代码中看到了这一点,但就我个人而言,我不明白为什么在我的复选框上剪切(带有.is(':checked')更改)什么都没发生!我甚至像你一样发出警告,但仍然单击复选框什么也不做。这可能是一个愚蠢的问题,但如果jquery函数不在正确值之间,这有关系吗?实际上,我的代码中有这一点,但为了简洁起见,从示例粘贴程序中删除了它。
 $.post("/controller/update_notify", ...
if (this.checked) {