Получить значение автозаполнения Jquery в вызов Ajax - PullRequest
0 голосов
/ 04 мая 2018

У меня есть поле автозаполнения jquery в index.php страница:

$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 в ajax.js файле:

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 вызывается по нажатию кнопки.

Так что это был контекст. То, что я пытаюсь сделать, это получить значение из моего ввода jQuery в моей функции Ajax.

Что я пытался сделать: Я поставил эту строку:

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

В мой файл ajax.js непосредственно перед вызовом, чтобы получить нужное мне значение, но оно не работает. Я получаю эту ошибку:

Uncaught ReferenceError : ui is not defined

Полагаю, есть другой способ получить значение моего ввода, но я не могу найти, как.

Примечание 2: Вы можете заметить, что я пропустил некоторые строки, например в моем файле ajax.js. Это для наглядности.

Ответы [ 2 ]

0 голосов
/ 04 мая 2018

Просто используйте функцию 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>
0 голосов
/ 04 мая 2018

, чтобы получить значение div / текст, попробуйте

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

для установки значения

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

Обновление:

если вы хотите получить значение входных элементов, используйте метод jquery val ()

$('input_element').val();

в вашем случае используйте,

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