如何通过ajax自动完成在文本框中传递值并在php处理页面中接收

时间:2014-04-28 06:58:55

标签: javascript php jquery ajax autocomplete

这些是我的两个文本框

<input name="temp" type="text" id="authnames" />
<input name="qot" type="text" id="qid"  value=""/>

我在第一个文本框中获取值,我可以在屏幕上看到它(具有id authnames的那个)

现在我需要将该值传递给jquery / ajax到一个新的php页面并需要在那里检索它 下面是我的jquery / ajax代码,看看我传递它的方式,这是正确的方法,因为我觉得我在autocompletequote.php得到任何价值,我做错了什么?

$(document).ready(function(){
    $("#qid").autocomplete({
        source: "autocompletequote.php",
        minLength: 1,
        data: { postcode: $("#authnames").val(),
        type: "post",
        dataType: "json", 
        success: function(data) {
            console.log( data );
            console.log("hi");
        }
    },
    select: function (event, ui) {
        var label = ui.item.label;
        var value = ui.item.value;
        //alert(label);
        alert(value);
    }
});
});

我用来检索&#34; authnames&#34;

中的值值的两个代码
$author = $_POST['postcode'];

$author = $_GET['postcode'];

这也是正确的吗?

我在autocomplete.php中写了2个查询

一个查询不需要$ author的值和$ author的其他需求值,

第一个查询工作正常第二个不工作它返回null

请帮帮我

2 个答案:

答案 0 :(得分:1)

我认为你自动完成的语法是错误的。

必须遵循jquery-autocomplete的语法。

数据实际上是自动完成后的一个函数。

所以要修复你的代码,去做你正在做的事情。

$(document).ready(function(){

$("#qid").autocomplete
({
   source:"autocompletequote.php",
   minLength:1,
   select: function (event, ui) 
   {
    var label = ui.item.label;
    var value = ui.item.value;
    //alert(label);
    alert(value);
    $.ajax({
       url: "autocompletequote.php",
       data: { "Myvariablename" : $("#authnames").val() } ,
       type:"post",
       dataType:"json", 
       success:function(data)
       {
           console.log( data );
           console.log("hi");
       }
     });
   }

  });
 });

或者我误解了目的

在PHP中

$authname = $_POST["Myvariablename"];

已编辑:

要传递额外的查询或自定义查询,源属性必须是类似的函数

$("#qid").autocomplete({
  source: function(request, response) {
    $.getJSON("autocompletequote.php", { "Myvariablename" : $("#authnames").val(), "someothervarialble" : xxx }, 
              response);
  },
  minLength: 1,
  select: function(event, ui){
    // your action or futher ajax code goes here.
  }
});

答案 1 :(得分:0)

最后我得到了答案我刚刚将代码更改为

<script>
var label;
var value;
 $(document).ready(function(){

                $("#tag").autocomplete({
                    source:'autocomplete.php',
                    minLength:1,
                    select: function (event, ui) 
                    {
                         label = ui.item.label;
                         value = ui.item.value;
                        $("#authnames").val(value);
                        console.log("hi");

                        //alert(label);
                        alert(value);

                        $("#qid").autocomplete({
                       source:'autocompletequote.php?postcode='+value,
                       minLength:1,
                       select: function (event, ui) 
                       {
                        var label1 = ui.item.label;
                        var value1= ui.item.value;

                        console.log("hi");

                        //alert(label);
                        //alert(value);
                       }


                   });

                    }


                });



            });




</script>

现在一切都好了