Как задать входное (текстовое) значение переменной PHP «на лету»

#php #javascript #jquery #jquery-ui

#php #javascript #jquery #jquery-пользовательский интерфейс

Вопрос:

По сути, я использую datepicker из jQuery, чтобы мой клиент мог выбрать дату. Затем я хочу взять эту дату (как только они ее выберут) и обработать ее через базу данных, чтобы предварительно заполнить указатель времени.

Проблема в том, что я не знаю, как принять значение этого поля ввода и обработать его без фактической отправки формы. Я хочу разобраться со значением, как только они выберут.

Вот мой код выбора даты:


$(function() {
$( "#datepicker" )
.datepicker({ minDate: ' 1' });
});

Я предполагаю, что мне каким-то образом пришлось бы добавить событие onblur, но я не уверен, как лучше всего это сделать.

Комментарии:

1. AJAX. en.wikipedia.org/wiki/Ajax_(programming)

Ответ №1:

Чтобы сервер действительно обработал значение средства выбора даты без отправки формы, вам пришлось бы передать это значение на сервер через AJAX.

 $('.datepicker').datepicker({
   onSelect: function(dateText, inst) { 
       $.ajax({
          url: "yourscript.php",
          type: "POST",
          data: ({date : dateText}),
          success: function(data){
             alert(data); 
          }
       }); 
   }
});
  

Комментарии:

1. Мне пришлось изменить URL и данные на это, чтобы это работало, но это работает, URL указывает на функцию контроллера: onSelect: function(dateText, inst) { $.ajax({ url: «/order/get_preorder_time /», тип: «POST», данные: «date =» dateText, успех: функция (данные){ var EndTime = data; document.write(EndTime); } }); }

Ответ №2:

Вы можете сделать это, используя поддержку AJAX jQuery.

Ответ №3:

$("#datepicker").change(функция(){
$.ajax({
 введите:"GET", 
 url: "URL здесь", 
 Успех: функция(ответила){ оповещение ("добавлено"); }
});
});

Ответ №4:

Для этого вам придется использовать ajax, если вы не хотите отправлять форму.

 // code for IE7 , Firefox, Chrome, Opera, Safari
    if (window.XMLHttpRequest) {
        xmlhttp=new XMLHttpRequest();
    // code for IE6, IE5
    } else {
        xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
    }       
    xmlhttp.open("GET",site,false);
    xmlhttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded'); 
    xmlhttp.send(null);
  

Где var site — это страница php с прикрепленными переменными get, или, если вам нужно использовать изменение запроса POST "GET" на "POST" и заменить null in xmlhttp.send(null) на строку переменных post.

Надеюсь, это помогло!