Использование javascript-переменной извне функции для перехода к моей функции AJAX - PullRequest
0 голосов
/ 20 июня 2019

У меня есть функция AJAX, которая вызывается при каждом нажатии клавиши ввода. У меня есть набор переменных javascript, которые передаются в данные функции AJAX. Ранее эти переменные JS были равны элементам в HTML (содержимое текстовой области). Теперь я хочу, чтобы эти переменные JS были равны значениям переменных JS вне функции.

   function stream()
{


    var line_Number = $('#lineNumber').val();
    var post_code = '#lineText';
    var post_id = $('#Streamid').val();
    if (post_code != ''){

    $.ajax({
      url: "post-code.php",
      method: "POST",
      data: {lineText: post_code, lineNumber: line_Number},
      dataType: "text",
      success: function(data){
        if(data != ''){
          $('#Streamid').val(data);
        }
        $('#autoStream').text("Sending data");
          setInterval(function(){
            $('#autoStream').text('');
          }, 100);
      }
    });
  }
}

Затем другая функция вызывает функцию AJAX

А вот переменные JS, к которым я хочу получить доступ и передать в функцию AJAX

     var text;
     var lineNumber;
     var lineText;
     var numOfSpaces;




   function update(e) {

       text = //code
       lineNumber = //code
       lineText = //code

Я не показывал код для каждой переменной, так как чувствовал, что это может излишне усложнить это.

Ответы [ 2 ]

0 голосов
/ 20 июня 2019

Привет, вы можете создать массив json и передать его в качестве параметра вашей функции ajax, таким образом вы избегаете писать ненужный код, например:

let params = {
    "line_number": $('#lineNumber').val(),
  "post_code" : '#lineText',
  "post_id" : $('#Streamid').val()
};



 function stream(params)
{
    if (params.post_code != ''){

    $.ajax({
      url: "post-code.php",
      method: "POST",
      data: data,
      dataType: "text",
      success: function(data){
        if(data != ''){
          $('#Streamid').val(data);
        }
        $('#autoStream').text("Sending data");
          setInterval(function(){
            $('#autoStream').text('');
          }, 100);
      }
    });
  }
}

Надеюсь, это поможет

0 голосов
/ 20 июня 2019

Если я понимаю ваш вопрос, у вас есть следующие варианты:
1- Используйте скрытый элемент HTML:

<input type="hidden" id="someVariable">

где вы хотите инициализировать в вашем скрипте (JQuery):

$('#someVariable').val(myVar)

и в скрипте в функции ajax (JQuery):

var myVar = $('#someVariable').val()

2- Вы знаете, что область действия var, если она объявлена ​​вне функции в javascript, является дырочным документом (окном).
3- Передайте аргументы вашей функции ajax. например:

function stream(firstVariable, secondOne, ...)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...