将 Jquery 自动完成的值检索到 Ajax 调用中

Retrieve value of Jquery autocomplete into Ajax call

我在 index.php 页面中有一个 jquery 自动完成字段:

$html .= '<div class="ui-widget">
    <label for="tags">Tags:</label>
    <input id="tags" />
    <div id="tagsname"></div>
</div>';
$html .= "<script>
    jQuery.noConflict();
    jQuery(function () {
        var availableTags = [
            'ActionScript',
            'AppleScript',
            'Asp',
            'BASIC',
            'C'
            ];
            jQuery('#tags').autocomplete({
            source: availableTags
        });
    });
    jQuery(document).ready(function () {
        jQuery('#tags').on('change', function () {
            jQuery('#tagsname').html('You selected: ' + this.value);
        }).change();
        jQuery('#tags').on('autocompleteselect', function (e, ui) {
            jQuery('#tagsname').html('You selected: ' + ui.item.value);
        });
    });</script>";

我想将值检索到 ajax.js 文件中的 ajax 调用中:

jQuery.ajax({
        type: "GET",
        url: "setvalues.php",
        data: {"event": event}

通过setvalues.php调用:

if (session_status() == PHP_SESSION_NONE) {
        session_start();
    }
    $_SESSION['event'] = $_GET['event'];

注:ajax函数是用按钮调用onclick

这就是背景。 我想做的是从 jQuery 函数中的 jQuery 输入中获取值。

我尝试过的事情: 我放了这一行:

event = jQuery('#tagsname').html(ui.item.value);

在调用之前进入我的 ajax.js 文件以获取我需要的值,但它不起作用。 我收到此错误:

Uncaught ReferenceError : ui is not defined

我想还有另一种方法可以获取我输入的值,但我找不到方法。

注 2:您可能会注意到我省略了一些行,例如在我的 ajax.js 文件中。这是为了清楚起见。

要获得 div value/text,您应该尝试

let event = $('#tagsname').text();

设置值

$('element').text('some _value');

更新:

如果要获取输入元素值,请使用jquery val() 方法

$('input_element').val();

在你的情况下使用,

$("#tags").val();

只需在输入元素上使用 jQuery 的 val() 函数。我创建了一个简化示例,其中您输入的值显示在警报消息中。您可以在 Ajax 通话中执行相同的操作。

jQuery.noConflict();
jQuery(function () {
    var availableTags = [
        'ActionScript',
        'AppleScript',
        'Asp',
        'BASIC',
        'C'
        ];
        jQuery('#tags').autocomplete({
        source: availableTags
    });
});
jQuery(document).ready(function () {
    jQuery('#tags').on('change', function () {
        jQuery('#tagsname').html('You selected: ' + this.value);
    }).change();
    jQuery('#tags').on('autocompleteselect', function (e, ui) {
        jQuery('#tagsname').html('You selected: ' + ui.item.value);
    });
});

// Click event handler of "Get value" button
jQuery("#getValue").click(function() {
  // Select input element and take it's value using jQuery's val() function
  var selValue = jQuery("#tags").val();
  alert("Selected value: " + selValue);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<script src="https://code.jquery.com/ui/1.12.1/jquery-ui.min.js"></script>
<link href="https://code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css" rel="stylesheet"/>

<div class="ui-widget">
    <label for="tags">Tags:</label>
    <input id="tags" />
    <div id="tagsname"></div>
</div>

<button type="button" id="getValue">Get value</button>