Javascript JQuery/AJAX:在输入字段更改时,创建php会话并刷新当前页面

Javascript JQuery/AJAX:在输入字段更改时,创建php会话并刷新当前页面,javascript,php,jquery,ajax,jquery-ui-autocomplete,Javascript,Php,Jquery,Ajax,Jquery Ui Autocomplete,我有两个输入字段。一个是为名为business的节目,另一个是隐藏的,名为auto_search_id,并进入服务器。我已经创建了一个自动完成功能。我想做的是,如果用户开始键入并决定单击一个已经存储了业务的自动完成列表项,那么页面将获取id,将其发送到update.php页面以更新php会话id,然后使用当前会话id刷新页面 在找出正确的AJAX编码方面存在问题。输入字段的更改功能不起作用。它会调出自动完成,但当单击自动完成列表项时,它不会发送id并刷新页面。我对JQuery/AJAX还是新手,

我有两个输入字段。一个是为名为business的节目,另一个是隐藏的,名为auto_search_id,并进入服务器。我已经创建了一个自动完成功能。我想做的是,如果用户开始键入并决定单击一个已经存储了业务的自动完成列表项,那么页面将获取id,将其发送到update.php页面以更新php会话id,然后使用当前会话id刷新页面

在找出正确的AJAX编码方面存在问题。输入字段的更改功能不起作用。它会调出自动完成,但当单击自动完成列表项时,它不会发送id并刷新页面。我对JQuery/AJAX还是新手,但我认为我在自动搜索id更改功能中缺少了一些东西,但不知道是什么。请帮忙

Javascript/JQuery/Ajax

    <script>
        $(document).ready(function(){
            $("#business").autocomplete({
                minLength: 2,
                source: function(request, response){
                    $.ajax({
                        type: "POST",
                        url: "/autocomplete-pq.php",
                        dataType: "json",
                        data:'keyword=' + request.term,
                        success: function(data){
                            response(data);
                        }
                    });
                },
                select: function(event, ui){
                    $("#business").val(ui.item.label);
                    $("#auto_search_id").val(ui.item.value);
                    return false;
                }
            });

            $("#auto_search_id").change(function(){
                $.ajax({
                    type:'POST',
                    url:"/update.php",
                    data: { varname: reponse},
                    success:function(response){
                        location.reload()
                    }
                });             
            });
        });

    </script>
PHP

HTML


首先,您需要检查是否调用了更改事件。在里面放一个警报。要维护会话,您需要通过调用参数PHPSESSID传递其id,但它有一些安全隐患,请阅读:

我无法重现代码,但我发现有两个问题:

1调用$auto\u search\u id.valui.item.value;实际上设置输入的新值,但它不会触发其更改事件。你应该这样触发它:

$("#auto_search_id").val(ui.item.value).trigger("change");
2您正在尝试向服务器发送尚未可用的响应。假设您要将隐藏字段值发送到服务器

$("#auto_search_id").change(function(){
  var newID = $(this).val();
  $.ajax({
    type:'POST',
    url:"/update.php",
    data: {varname: newID},
    success:function(response){
      location.reload()
    }
  });             
});

这帮了大忙。我知道我在误导某些东西,以便将隐藏的值发送到服务器。很好用,谢谢。
$("#auto_search_id").val(ui.item.value).trigger("change");
$("#auto_search_id").change(function(){
  var newID = $(this).val();
  $.ajax({
    type:'POST',
    url:"/update.php",
    data: {varname: newID},
    success:function(response){
      location.reload()
    }
  });             
});