【问题标题】:Passing whether a checkbox is checked, via jQuery, to PHP通过 jQuery 将是否选中复选框传递给 PHP
【发布时间】:2010-06-29 23:07:28
【问题描述】:

我的 jQuery/PHP 应用程序中有一个 AJAX 调用。它需要将一些数据发送到 PHP 脚本进行处理(我的这部分工作正常)。

我的 jQuery 变量:

var form_data = {
   urltitle: '<?php echo $urltitle; ?>',
   subscribe: $('#subscribe').val(),
   comment: $('#commentbox').val()
};

这很好用,PHP 脚本会读取所有变量的值——“订阅”变量除外。订阅是一个复选框,如下所示:

<input type="checkbox" name="subscribe" checked="checked" value="subscribe" id="subscribe"/> 

如何将复选框的“值”传递给我的 PHP 脚本?我也有这个脚本的非 AJAX 版本,除了我使用的 PHP 端之外,它几乎相同:

if (isset($_POST['subscribe'])) { /* do something */ }

而且效果很好……

谢谢!

杰克

【问题讨论】:

标签: php jquery ajax


【解决方案1】:

当您说价值时,您的意思是订阅还是只想知道复选框是否已被选中。

如果您只想知道它是否已被检查,那么您可以执行$('#subscribe:checked').val(),如果它为空,那么您知道它没有被检查,如果不是,那么您应该在您的案例中订阅该值。

【讨论】:

  • 如果 subscribed 未选中,那么 .val() 将是“未定义”,不是吗?就像在零长度的 jQuery 结果上调用 .val() 一样。
  • 干杯达伦,这成功了。著名的书呆子,我意识到如果未选中它将是未定义的,但我的 PHP 只是读取 if (isset($_POST['subscribe'])) { do something } else { do something else }。所以它不需要检查它是否'未定义'。但是,谢谢你:)
  • @R0MANARMY,实际上是的。因为@Famous Nerd 正在评论@darren102 的答案,他说$('#subscribe:checked').val() 将返回null .. 它会返回undefined注意他正在询问已检查#subscribe 的值.. 所以如果是未检查它不会返回任何 jquery 对象..)
  • @Jack Webb-Heller:顺便说一句,虽然这种方式可行,但它确实是一种迂回的完成方式,我建议使用更直接的方式。
【解决方案2】:

.is(':checked') 应该可以工作

【讨论】:

    猜你喜欢
    • 2013-09-06
    • 2016-08-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-15
    • 2012-06-01
    • 1970-01-01
    • 2012-10-28
    相关资源
    最近更新 更多