Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/87.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
Jquery 为什么不';我的全局变量没有得到任何值吗?_Jquery_Ajax_Servlets - Fatal编程技术网

Jquery 为什么不';我的全局变量没有得到任何值吗?

Jquery 为什么不';我的全局变量没有得到任何值吗?,jquery,ajax,servlets,Jquery,Ajax,Servlets,我将一个全局变量(var arrDatas=[])声明为数组,以便它可以从$.get方法的响应中获取值,但它没有任何值 来自servlet的响应将是“name1,abc@email.com;名称2,def@email.com;名称3,ghj@email.com", 我的剧本: <script type="text/javascript"> var arrDatas = []; $(document).ready(function() {

我将一个全局变量(var arrDatas=[])声明为数组,以便它可以从$.get方法的响应中获取值,但它没有任何值

来自servlet的响应将是“name1,abc@email.com;名称2,def@email.com;名称3,ghj@email.com",

我的剧本:

<script type="text/javascript">
        var arrDatas = [];

        $(document).ready(function() {
            $('#lecturerName').autocomplete({
                source : function(request, response) {
                    var value = $('#lecturerName').val();
                    $.get('getLecturer', {
                        keyWordLN : value
                    }, function(responseText) {
                        **arrDatas = responseText.split(";");**
                        var arrName = [];
                        for ( var i = 0; i < arrDatas.length; i++) {
                            tem = [];
                            tem = arrDatas[i].split(",");
                            arrName[i] = tem[0];
                        }
                        response(arrName);
                    });
                }
            });
        });
        $.fn.pressEnter = function(fn) {

            return this.each(function() {
                $(this).bind('enterPress', fn);
                $(this).keyup(function(e) {
                    if (e.keyCode == 13) {
                        $(this).trigger("enterPress");
                    }
                });
            });
        };
        $(document).ready(function() {
            $('#lecturerName').pressEnter(function() {
                name = $('#lecturerName').val();
                email = "Chua lay duoc email";
                for ( var i = 0; i < arrDatas.length; i++) {
                if (arrDatas[i].indexOf(name) > 6) {
                    tem = [];
                    tem = arrDatas[i].split(",");
                    email = tem[1];
                    }
                }
                var $ulList = $('#selectedEmails');
                value = '<li><div class="vT">'+ name+ '</div><div class="vM"></div><input type="hidden" name="txtToEmail" value="'+email+'"></li>';
$('<li>').text(value).appendTo($ulList);
        });
    });
    </script>
请帮助我知道为什么我的全局变量“arrDatas”没有任何值。
非常感谢:)

为什么不编辑servlet以返回JSON,只需使用
JSON.parse()
创建一个对象?
console.log(responseText)
console.log(typeof responseText)
,两者的结果是什么?另外,请注意,如果您试图从
$之外的任何地方访问全局数组,那么它可能仍然是空的。由于Ajax的非同步特性,请获取
回调。您能给我一个在这种情况下如何使用JSON的示例吗?@plalx:console.log(responseText)的结果是:User one的名称,username1@gmail.com;用户2的名称,username2@gmail.com;用户三的名字,username3@gmail.com; 类型是string@user2971216好的,那么您在代码中的什么地方尝试访问数组,而它是空的?
<tr>
            <td>Người nhận</td>
            <td colspan="1"><input type="text" id="lecturerName" size="26">
            </td>
            <td>
                <ul class="menu-bar">
                    <li><a href="1">Home</a>
                        <ul id="selectedEmails">
                            <li>
                                <div class="vT">Name</div>
                                <div class="vM"></div>
                                <input type="hidden" name="txtToEmail" value="email">
                            </li>
                        </ul>
                    </li>
                </ul>
            </td>
        </tr>
@Override
    protected void doGet(HttpServletRequest request,
            HttpServletResponse response) throws ServletException, IOException {
        try {
            String key = request.getParameter("keyWordLN");

            Connection cnn = XJdbc.getConnection();
            String sql = "SELECT Name, Emails FROM lecturers WHERE Name LIKE '%"+key+"%'";
            Statement stm = cnn.createStatement();
            ResultSet rs = stm.executeQuery(sql);
            String result = "";
            while (rs.next()) {
                result = result + rs.getString("Name") + "," + rs.getString("Emails")+";";
            }

            response.setContentType("text/plain");
            response.setCharacterEncoding("UTF-8");
            response.getWriter().print(result);
            cnn.close();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }