javascript - JQuery/AJAX : On Input Field change, 创建php session ,并刷新当前页面

标签 javascript php jquery ajax jquery-ui-autocomplete

我有两个输入字段。一个用于显示,称为业务,另一个是隐藏的,称为 auto_search_id 并转到服务器。我已经创建了自动完成功能。我想要做的是,如果用户开始输入并决定单击已存储业务的自动完成列表项,该页面将获取 id,将其发送到 update.php 页面以更新 PHP session id,然后刷新具有当前 session ID 的页面。

在确定正确的 AJAX 编码时遇到问题。我的输入字段更改功能不起作用。它会启动自动完成功能,但是当单击自动完成列表项时,它不会发送 id 并刷新页面。我对 JQuery/AJAX 仍然很陌生,但我认为我在 #auto_search_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

    <?php
        session_start();
        $_SESSION["id"] = $_POST["varname"];
        echo $_SESSION["id"];
    ?>

HTML

    <input type="text" id="business" name="jurisdiction" value="<?php echo $juristiction ?>" required>
    <input type="hidden" name="search" id="auto_search_id"  />  

最佳答案

我无法重现代码,但我发现有两处错误:

1 调用 $("#auto_search_id").val(ui.item.value); 实际上设置了输入的新值,但它不会触发其更改 em> 事件。你应该像这样触发它:

$("#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()
    }
  });             
});

关于javascript - JQuery/AJAX : On Input Field change, 创建php session ,并刷新当前页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41858965/

相关文章:

javascript - 无法在指令 angularjs 中从 firebase 获取数据

javascript - 在 C# 中获取 JavaScript/HTML 变量的值

javascript - Jquery 检测元素何时通过滚动运动完全隐藏

javascript - 在逗号和句号后添加空格,但如果它是小数分隔符则不添加空格

javascript - 如何在ajax url中使用laravel路由

php - AJAX 实时插入删除搜索,显示项目 2 次

php - 是否可以在 PHP 中进行方法调用?

jquery - 页面加载后过渡不显示在 chrome 中

javascript - Wordpress:在另一个插件文件中使用一个插件文件的功能

javascript - Javascript 数组的 Sum 函数问题