2014-12-02 3 views
-1

Я не уверен, что это возможно, и если я могу это обработать - выполните Ajax на дату select from datepicker. Я не получаю никаких ошибок от части Ajax в консоли. В div ID «пропорционально» я получаю «успех» вместо номинальной стоимости подписки. Нужно ли использовать JSON для получения возвращаемых значений из файла PHP?jQuery UI Datepicker и выполнить Ajax после выбора даты

Цель состоит в том, чтобы получить пропорциональную абонентскую цену на основании выбранной даты и дней, оставшихся в течение выбранного месяца.

Текущий код выглядит и расчет дней остались за выбранный месяц:

<script> 
jQuery(document).ready(function() { 
    jQuery("#dataStart").datepicker({ 

     minDate: '+2d', 
     changeMonth: true, 
     changeYear: true, 
     dateFormat: 'mm/dd/yy', 
     onSelect: function(date){ 
      var dates = date.split('/'); 
      var lastDate = new Date(dates[2], dates[0], 0); 
      var y = lastDate.getFullYear(), m = lastDate.getMonth(), d = lastDate.getDate(); 
      m = ('0'+ (m+1)).slice(-2); 

      jQuery('#dataEnd').val(m+'/'+d+'/'+y); 
      var start = jQuery('#dataStart').datepicker('getDate'); 
      jQuery('#dataEnd').datepicker({dateFormat: 'mm/dd/yy'}).datepicker('setDate', m+'/'+d+'/'+y); 
      var end = jQuery('#dataEnd').datepicker('getDate'); 
      var days = ((end - start)/1000/60/60/24)+1; 

      jQuery('#calculated').text(days);  

       jQuery.ajax({ 
       url:"prorated.php", 
       type: "POST", 
       data: {prorated_days: days, prorated_subscription: 25, prorated_package: "basic"}, 
       success:function(data, result){ 
        $("#prorated").html(result); 
       } 
       }); 

     } 
    }); 
}); 
</script> 
<label for="dataStart">Start Date:</label> 
<input type="text" style="width: 88px;" class="datepicker" id="dataStart" size="10" name="dataStart" data-role="date" /> 
<label for="dataEnd">End Date:</label> 
<input type="text" style="width: 88px;" class="end_date" id="dataEnd" size="10" name="dataEnd" value="" readonly /> 
+2

Включите код Ajax, который вы пытаетесь выполнить, пожалуйста –

+0

@JeffWatkins Обновлены. И почему вы проголосовали, когда по теме? – JackTheKnife

+1

Вы получаете «успех» в своем «пропорциональном» div, потому что вы устанавливаете html для значения _textStatus_ функции успеха (что вы называете «результатом»). Вероятно, вы хотите 'html (data) '. – ioums

ответ

1

JQuery Ajax проходит тело Аякса ответа в первом параметре передается функции успеха. Второй параметр, который вы используете, - textStatus. Поскольку ваш вызов ajax был успешным, textStatus является «успехом». В вашем Аяксе функция успеха должна быть такими:.

$ ('# распределенными ") HTML (данные);

+0

Отлично! Это работает. Можете ли вы рассказать мне, как я могу обрабатывать данные JSON в возврате Ajax вместо HTML? – JackTheKnife

+0

Ничего, он должен работать после добавления 'dataType: 'json',' – JackTheKnife

Смежные вопросы