使用函数外部的javascript变量传递给我的AJAX函数

时间:2019-06-20 17:51:35

标签: javascript ajax

我有一个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函数

这是我要访问并传递给AJAX函数的JS变量

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




   function update(e) {

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

我没有显示每个变量的代码,因为我认为这可能不必要地使它复杂化。

2 个答案:

答案 0 :(得分:0)

如果我理解您的问题,则可以选择以下选项:
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, ...)

答案 1 :(得分:0)

嗨,您可以创建一个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);
      }
    });
  }
}

希望有帮助