Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/453.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 变量未在脚本字符串中更新,但它已更新_Javascript_Jquery_Variables - Fatal编程技术网

Javascript 变量未在脚本字符串中更新,但它已更新

Javascript 变量未在脚本字符串中更新,但它已更新,javascript,jquery,variables,Javascript,Jquery,Variables,这里很混乱 我有一个搜索框,可以从我的数据库中读取学校名称列表。当我选择一所学校时,db中的id会被放在一个隐藏的文本框中 我还有一个搜索框,可以从我的数据库中读取课程列表。但是,我进行了查询,因此它只读取所选学校的课程 理论上,它就是这样 我计划将从隐藏框中获取的学校id传递给搜索脚本,然后搜索脚本将其传递给我的数据库查询。但是,我放入学校id的变量似乎没有更新。。但事实确实如此。让我解释一下 我上了这一页。我考试帐户的学校id为1。我的隐藏框中的id号实际上是1。我搜索一所我知道有一些课程分

这里很混乱

我有一个搜索框,可以从我的数据库中读取学校名称列表。当我选择一所学校时,db中的id会被放在一个隐藏的文本框中

我还有一个搜索框,可以从我的数据库中读取课程列表。但是,我进行了查询,因此它只读取所选学校的课程

理论上,它就是这样

我计划将从隐藏框中获取的学校id传递给搜索脚本,然后搜索脚本将其传递给我的数据库查询。但是,我放入学校id的变量似乎没有更新。。但事实确实如此。让我解释一下

我上了这一页。我考试帐户的学校id为1。我的隐藏框中的id号实际上是1。我搜索一所我知道有一些课程分配给它的学校:框中的id号变为3

我在$document.ready之外声明了一个名为school_id的JS变量。我想这意味着它是全球性的,这就是我所学到的,尽管有一次我这么告诉我,这并不是正确的方法。我们还得调查一下。我编写了一个函数,在学校搜索框失去焦点时更新此变量:

    $("#school").blur(function()    {
        school_id = $("#school_id").val();
    });
一个快速javascript:alertschool\u id;在我的浏览器栏中还显示了更新的变量:它现在是3而不是1

在“我的页面”的搜索脚本部分,脚本节选:

脚本:/profiel/search\u richting?json=true&limit=6&id=+school\u id+&

如您所见,我在这里将school_id变量传递给脚本。然而,似乎正在发生的是,当页面加载时,它总是传递默认变量“1”。它只是忽略更新的变量。加载页面时是否解析此字符串?换句话说,一旦页面加载,它是否真的会说&id=1?这是我唯一能想到为什么它总是通过“1”

有没有办法在我的脚本字符串中更新此变量?或者,解决这个问题的最佳方法是什么?像往常一样,我可能又错过了一件非常简单的事情。非常感谢

编辑

根据请求更新。我按照建议添加了一个函数getTheString,并使用该函数的值来获取URL。但是仍然不起作用,在我有机会更新变量之前,它似乎仍然在连接。但是,使用这段代码,我的ajax日志显示id:[object HTMLInputElement],而不是id:1。不知道那是什么意思

<script type="text/javascript">
var school_id;
$(document).ready(function()    {

    $("#school").blur(function()    {
        school_id = $("#school_id").val();
    });

    // zoekfunctie
    var scholen = {
        script:"/profiel/search_school?json=true&limit=6&",
        varname:"input",
        json:true,
        shownoresults:false,
        maxresults:6,
        callback: function (obj) { document.getElementById('school_id').value = obj.id; }
    };
    var as_json = new bsn.AutoSuggest('school', scholen);

    var richtingen = {
        script: getTheString(),
        varname:"input",
        json:true,
        shownoresults:true,
        maxresults:6
    };
    var as_json2 = new bsn.AutoSuggest('studierichting', richtingen);

});
function getTheString() {
    return "/profiel/search_richting?json=true&limit=6&id=" + school_id + "&";
}   

   </script>

这是因为URL是静态的,不会随着ID的更改而更新

您应该将URL更新为您为获取ID而编写的代码的一部分:

$("#school").blur(function()    {
   school_id = $("#school_id").val();
   // update URL here ...
});

这是因为URL是静态的,不会随着ID的更改而更新

您应该将URL更新为您为获取ID而编写的代码的一部分:

$("#school").blur(function()    {
   school_id = $("#school_id").val();
   // update URL here ...
});

在触发事件并更新var之前,您不是在连接脚本:/profiel/search\u richting?json=true&limit=6&id=+school\u id+&吗?

在触发事件并更新var之前,您不是在连接脚本:/profiel/search\u richting?json=true&limit=6&id=+school\u id+&好的。所以问题是我的第三方插件,而不是我编写的代码。我通过编辑autoSuggest插件的代码修复了这个问题,现在它在AJAX请求中包含了我的id字段

    var url = this.oP.script+this.oP.varname+"="+encodeURIComponent(this.sInp)+"&id="+ $("#school_id").val();

感谢所有试图帮助我的人

好的。所以问题是我的第三方插件,而不是我编写的代码。我通过编辑autoSuggest插件的代码修复了这个问题,现在它在AJAX请求中包含了我的id字段

    var url = this.oP.script+this.oP.varname+"="+encodeURIComponent(this.sInp)+"&id="+ $("#school_id").val();

感谢所有试图帮助我的人

我尝试过这个,但我认为问题出在我的脚本中。它接受我指定的URL,然后向其中添加一个动态&input=。。当我使用script:url时,它似乎不起作用。我想我必须更新搜索脚本,或者找到一种方法来绕过JS:我尝试过这个,但我认为问题在于我的脚本。它接受我指定的URL,然后向其中添加一个动态&input=。。当我使用script:url时,它似乎不起作用。我想我必须更新搜索脚本,或者找到一种方法来绕过JS:当我回复他们时,人们删除他们的评论是怎么回事:当我回复他们时,人们删除他们的评论是怎么回事: