Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/75.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
Javascript 如何在AJAX中获取复选框值_Javascript_Jquery_Ruby On Rails_Ajax_Http - Fatal编程技术网

Javascript 如何在AJAX中获取复选框值

Javascript 如何在AJAX中获取复选框值,javascript,jquery,ruby-on-rails,ajax,http,Javascript,Jquery,Ruby On Rails,Ajax,Http,我想在Ajax中获取复选框的值,以便将其作为每个用户的首选项保存在数据库中。我以前从来没有做过AJAX,所以我对它很迷茫 我的javascript文件: $(document).ready -> E.accounts.changeUnmarkVisibility() $('#letters-visibility').on 'click', (e) -> E.accounts.changeUnmarkVisibility() $('#label-letters-visibili

我想在Ajax中获取复选框的值,以便将其作为每个用户的首选项保存在数据库中。我以前从来没有做过AJAX,所以我对它很迷茫

我的javascript文件:

$(document).ready ->
E.accounts.changeUnmarkVisibility()

$('#letters-visibility').on 'click', (e) ->
  E.accounts.changeUnmarkVisibility()

$('#label-letters-visibility').on 'click', (e) ->
  if $('#letters-visibility').is(':checked')
    $('#letters-visibility').prop('checked', false)
  else
    $('#letters-visibility').prop('checked', true)

  E.accounts.changeUnmarkVisibility()

$('#letters-visibility').on 'change', (e) ->
      $.ajax
        url: "/backend/accounts/{#id}"
        type: 'POST'
        data: 
          isChecked: $('#letters-visibility').is(':checked')
        success: (data, status, request) ->
          console.log data

  E.accounts =
    changeUnmarkVisibility: ->
      unmarkLines = $('.active-list .unmark').closest('tr')

  if unmarkLines.is(':visible')
    unmarkLines.hide()
  else
    unmarkLines.show()

) 

我的post请求返回了404错误,我认为错误在我的“数据”选项中,我不确定我是否理解您所处的位置:在我看来,您已经毫无问题地读取了复选框的值,因此我假设您不知道如何处理AJAX调用

AJAX调用实际上只是对服务器的一个请求:您可能希望调用一个脚本(由您传递的URL指向),其中包含标识用户所需的参数和将复选框值写入数据库的选项


需要知道的一件事可能很有用:不需要构造查询字符串来传递GET请求中的参数,只需在
jQuery.ajax
调用的
data
参数中作为常规JSON对象传递参数即可

我不确定自己是否理解了您所处的困境:在我看来,您已经毫无问题地读取了复选框的值,因此我假设您不知道如何处理AJAX调用

AJAX调用实际上只是对服务器的一个请求:您可能希望调用一个脚本(由您传递的URL指向),其中包含标识用户所需的参数和将复选框值写入数据库的选项


需要知道的一件事可能很有用:不需要构造查询字符串来传递GET请求中的参数,只需在
jQuery.ajax
调用的
data
参数中作为常规JSON对象传递参数即可

AJAX不能做到这一点。AJAX返回值。然后查看值以决定要检查的内容。如果您是在jquery中这样做的,那么请看这里:

AJAX不会这样做。AJAX返回值。然后查看值以决定要检查的内容。如果您在jquery中执行此操作,请看这里:

是的,Deckerz是正确的。通常,您有一个ajax调用,它有一个“数据”选项,然后是一个成功选项。数据是要发送的值的数组/对象

jQueryAjax页面上有很多选项,很容易迷失其中。但这是常态。Done在some.php(在本例中)完成后调用,并且msg拥有从msg返回的数据。通常,您需要json格式。如果您想发回2个变量,这是一个很好的练习。e、 g状态(成功/错误)和ErrorMessage=“”

如果您使用的是php json,那么encode就是实现这一点的函数

$.ajax({
  method: "POST",
  url: "some.php",
  data: { name: "John", location: "Boston" }
})
  .done(function( msg ) {
    alert( "Data Saved: " + msg );
  });

是的,Deckerz是对的,通常你有一个ajax调用,它有一个“数据”选项,然后是一个成功选项。数据是要发送的值的数组/对象

jQueryAjax页面上有很多选项,很容易迷失其中。但这是常态。Done在some.php(在本例中)完成后调用,并且msg拥有从msg返回的数据。通常,您需要json格式。如果您想发回2个变量,这是一个很好的练习。e、 g状态(成功/错误)和ErrorMessage=“”

如果您使用的是php json,那么encode就是实现这一点的函数

$.ajax({
  method: "POST",
  url: "some.php",
  data: { name: "John", location: "Boston" }
})
  .done(function( msg ) {
    alert( "Data Saved: " + msg );
  });

AJAX本身不会检查它是否被检查。您可以签入jQuery并将其作为true或false通过AJAX请求。AJAX本身不会检查是否正在检查它。您可以签入jQuery,并将其作为true或false通过AJAX请求传递。我现在理解了区别,所以我尝试在“Data”选项中插入我的复选框值,并使用“Success”选项在控制台上显示它,但得到了404错误,知道怎么了吗?(编辑)404表示“some.php”不存在。打开你的开发工具,看看你点击的是哪个页面,并将some.php修改为正确的页面。我确实是一个URL错误,我通过在我的视图中传递URL来修复它,谢谢你的帮助:)我现在明白了区别,所以我试着在“数据”选项中插入我的复选框值,并用“成功”选项在控制台上显示它,但得到一个404错误,知道怎么了吗?(编辑)404表示“some.php”不存在。打开您的开发工具,查看您正在访问的页面,并将some.php修改为正确的页面。我确实是一个URL错误,我通过在视图中传递URL来修复它,谢谢您的帮助:)