【问题标题】:How to set an input (text) value to a PHP variable on the fly如何即时将输入(文本)值设置为 PHP 变量
【发布时间】:2011-09-06 07:53:58
【问题描述】:

基本上,我使用 jQuery 中的 datepicker 让我的客户选择一个日期。然后我想获取那个日期(一旦他们选择它)并通过数据库处理它以预填充时间选择器。

问题是,我不知道如何获取该输入框的值并处理它而无需实际提交表单。一旦他们选择,我想处理价值。

这是我的日期选择器代码:

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

我想我必须以某种方式添加一个 onblur 事件,但我不确定这样做的最佳方法是什么。

【问题讨论】:

标签: php javascript jquery jquery-ui


【解决方案1】:

要让服务器在不提交表单的情况下实际处理日期选择器的值,您必须通过 AJAX 将该值传递给服务器。

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

【讨论】:

  • 我必须将 url 和数据更改为此才能工作,但它可以工作,URL 指向一个控制器函数:onSelect: function(dateText, inst) { $.ajax({ url: "/order/get_preorder_time/",类型:"POST",数据:"date="+dateText,成功:function(data){ var endTime = data; document.write(endTime); } }); }
【解决方案2】:

您可以使用 JQuery AJAX support 来做到这一点。

【讨论】:

    【解决方案3】:

    $("#datepicker").change(function(){ $.ajax({ 类型:“获取”, 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 是附加了 get vars 的 php 页面,或者如果您必须使用 POST 请求将 "GET" 更改为 "POST" 并将 xmlhttp.send(null) 中的 null 替换为一串帖子变量。

      希望这有帮助!

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2012-09-28
        • 1970-01-01
        • 2015-06-04
        • 1970-01-01
        • 2013-06-05
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多