0

单击按钮时发送数据的位:

$.ajax({
    type: "POST",
    url: "<?php echo base_url(); ?>coformation/appoint/",
    data: {
            "director":director.attr('checked'),
            "shareholder":shareholder.attr('checked'),
            "secretary":secretary.attr('checked'),
            "firstname":firstname.attr('value'),
            "lastname":lastname.attr('value'),
            "birthday":birthday.attr('value'),
            "birthmonth":birthmonth.attr('value'),
            "birthyear":birthyear.attr('value'),
            "occupation":occupation.attr('value'),
            "nationality":nationality.attr('value'),
            "security1":security1.attr('value'),
            "securityletters1":securityletters1.attr('value'),
            "security2":security2.attr('value'),
            "securityletters2":securityletters2.attr('value'),
            "security3":security3.attr('value'),
            "securityletters3":securityletters3.attr('value'),
            "residentialaddress":residentialaddr.text(),
            "serviceaddress":serviceaddr.text()
          },
    success: function(response) { 
            alert(response.message);
    },
    dataType: "json"
});

但是当我在目标 URL 中使用 var_dump($_POST) 时,这个过程似乎只发送了 2 个字段:

array (size=2)  'residentialaddress' => string 'XXX' (length=34)  'serviceaddress' => string '' (length=0)

可能是什么问题呢?

4

3 回答 3

2

您正在那里发布属性attr() ..请通过链接查看 attr 的实际作用..

你甚至可以尝试做

console.log(director.attr('checked'));  //which you 'll notice that this is not you want

 "director":director.attr('checked'),....

这发送真或假..

那应该是

 "director":director.val(),"shareholder":shareholder.val(),....

val()为您提供选中元素的值,如果复选框或单选 .. 文本如果是文本框 .... 我认为这就是你想要的

于 2013-01-24T11:31:31.483 回答
1

当然只会发送其中两个:

data: {
        "director":director.attr('checked').val(),
        "shareholder":shareholder.attr('checked').val(),
        "secretary":secretary.attr('checked').val(),
        "firstname":firstname.val(),
        "lastname":lastname.val(),
        "birthday":birthday.val(),
        "birthmonth":birthmonth.val(),
        "birthyear":birthyear.val(),
        "occupation":occupation.val(),
        "nationality":nationality.val(),
        "security1":security1.val(),
        "securityletters1":securityletters1.val(),
        "security2":security2.val(),
        "securityletters2":securityletters2.val(),
        "security3":security3.val(),
        "securityletters3":securityletters3.val(),
        "residentialaddress":residentialaddr.text(), //<------it gets the text
        "serviceaddress":serviceaddr.text()          //<------it gets the text
      },

您的所有其他项目只是创建不发送值的对象.val(),因此您应该在所有其他项目之后追加.val()

于 2013-01-24T11:41:02.147 回答
0

如果数据对象中键的值未定义,则不会发送示例:

data: {
  'first': 'text',
  'second': undefined
}

第二个不会发送

于 2013-01-24T11:32:07.963 回答