0

PHP への Ajax 呼び出しを使用して、ユーザーが利用可能な日付の文字列を返し、動的にします。

文字列を次のようにjQueryに戻しています:

['7-15-2013','7-16-2013','7-17-2013','7-18-2013','7-19-2013','7-20-2013','7-21-2013','7-22-2013']

ただし、datePicker を初期化すると、その日付の文字列が読み込まれません。

理由についてはよくわかりませんが、Ajax 呼び出しの後の成功関数であると思われます。

私のjQueryコードは次のようになります:

$('.vendor_id').change(function()
    {
        var vendor_id = $('option:selected', this).attr('title');

        var url = "/admin/po/get_user_dates/" + vendor_id;

        $.ajax({
            type : "POST",
            url  : url,
            success: function(unavaildates)
            {
                var disabledDays = unavaildates;

                function disableAllTheseDays(date) {
                    var m = date.getMonth(), d = date.getDate(), y = date.getFullYear();
                    for (i = 0; i < disabledDays.length; i++) {
                        if($.inArray((m+1) + '-' + d + '-' + y,disabledDays) != -1) {
                            return [false];
                        }
                    }
                    return [true];
                }


                $('.booking-date').datepicker(
                        {
                            beforeShowDay: disableAllTheseDays,
                            numberOfMonths: 2,
                            dateFormat: 'DD, d MM, yy',
                            showButtonPanel: true
                        }
                )

            }
        })
    })

誰かがこれについて私を助けてくれることを願っています。

クイック アップデート.. ['7-15-2013','7-16-2013','7-17-2013','7-18-2013','7-19-2013',' への disabledDays の割り当てについて7-20-2013','7-21-2013','7-22-2013'] datePicker は動作しますか?

前もって感謝します。

4

1 に答える 1

2

サーバーから配列ではなく文字列を取得しているためです。

サーバーから角括弧なしで文字列を返し、"'7-15-2013','7-16-2013','7-17-2013','7-18-2013','7-19-2013','7-20-2013','7-21-2013','7-22-2013'"次のような配列を作成することをお勧めします。

var unavaildates = "'7-15-2013','7-16-2013','7-17-2013','7-18-2013','7-19-2013','7-20-2013','7-21-2013','7-22-2013'"
var disabledDays = unavaildates.split(',');
于 2013-07-11T15:40:17.297 に答える