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'),....

これは true または false のいずれかを送信します。

それはあるべきです

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

val()は、チェックボックスまたはラジオの場合はチェックされた要素の値を提供します..テキストボックスの場合はテキスト....これがあなたが望むものだと思います

于 2013-01-24T11:31:31.483 に答える
1

もちろん、そのうちの 2 つだけが送信されます。

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
}

2番目は送信されません

于 2013-01-24T11:32:07.963 に答える