Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/82.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_Html - Fatal编程技术网

Javascript 一个可以发布更好的解决方案,我很想看到它

Javascript 一个可以发布更好的解决方案,我很想看到它,javascript,jquery,html,Javascript,Jquery,Html,是什么让它最终起作用的(与其说是解决方案,不如说是解决方案) 我在加载循环的末尾添加了一个测试,以检查我是否在最后一次迭代中,然后执行。click() LoadEvents() { var-xhttp; var事件列表; xhttp=newXMLHttpRequest(); xhttp.onreadystatechange=函数() { if(this.readyState==4&&this.status==200) { EventList=this.responseText.split(“,”

是什么让它最终起作用的(与其说是解决方案,不如说是解决方案)

我在加载循环的末尾添加了一个测试,以检查我是否在最后一次迭代中,然后执行
。click()

LoadEvents()
{
var-xhttp;
var事件列表;
xhttp=newXMLHttpRequest();
xhttp.onreadystatechange=函数()
{
if(this.readyState==4&&this.status==200)
{
EventList=this.responseText.split(“,”);
//清除列表
$(“#事件”).empty();
forEach(函数(项、索引、数组)
{
如果(项目!==“”)
{
$ID=项目。拆分(“;”)[0];
$(“#events”).append(“
  • ”+item.split(“;”[1]+”
  • ”); } if(index==EventList.length-1) { $(“#”+选择EDID)。单击(); } }); } }; xhttp.open(“GET”,“DataLink2.php?con=GetFullEvents&orderby=“+$orderby,true”); xhttp.send(); }


    如果有人能发布更好的解决方案,我很乐意看到

    你试过在dom ready中包装你的js代码吗?@gauravmuk抱歉我对js很陌生,我不确定你在问什么。@gauravmuk啊,只是在谷歌上搜索了一下,是的,它是按照建议包装的。你能演示一下如何从服务器加载
    EventList
    吗?以下是你需要做的事情你尝试过在dom ready中包装你的js代码吗?@gauravmuk抱歉,我对js很陌生,我不确定你在问什么。@gauravmuk啊,只是在谷歌上搜索了一下,是的,它是按照建议包装的。你能展示一下你是如何从服务器加载
    事件列表的吗?以下是你需要做的事情,谢谢你解释发生了什么,非常感谢,这将给我一些进一步的谷歌材料。如果您对如何纠正问题有任何建议,请让我知道。只需提供检索代码(即“如果相关,可以发布代码”),因为实际解决方案取决于所使用的异步API。您如何调用php代码?换言之,“获取事件列表的代码”有什么作用?抱歉,现在补充道,我一直担心我的问题会被不必要的代码弄得一团糟。我似乎无法让它发挥作用,我可能真的很笨,但是什么改变了预选的状态?感谢您对发生的事情的解释,非常感谢,这将给我一些进一步的谷歌材料。如果您对如何纠正问题有任何建议,请让我知道。只需提供检索代码(即“如果相关,可以发布代码”),因为实际解决方案取决于所使用的异步API。您如何调用php代码?换句话说,“在这里获取事件列表的代码”有什么作用?抱歉,现在补充道,我一直担心我的问题会被不必要的代码弄得一团糟。我似乎无法让它正常工作,我可能真的很笨,但是什么改变了预选的状态??谢谢你的建议,我的问题不是存储id,我可以将其传递到函数中,问题是让一个函数等待另一个函数完成。感谢您的建议,我的问题不是存储id,我可以将其传递到函数中,问题是让一个函数等待另一个函数完成。
    
    <ul id="events" class="select" name="events" style="width:40vw;"></ul>
    
    LoadEvents()
    {
        var xhttp;
        var EventList;
        xhttp = new XMLHttpRequest();
        xhttp.onreadystatechange = function() 
        {
            if (this.readyState == 4 && this.status == 200)
            {
                EventList =  this.responseText.split(",");
                //Clear List
                $('#events').empty();
                EventList.forEach(function(item, index, array) 
                {
                    if(item !== "")
                    {
                        $ID = item.split(";")[0];
                        $('#events').append('<li class="event" id=\"' + $ID '\">' + item.split(";")[1] + '</li>');
                    }
                });  
            }
        };
        xhttp.open("GET", "DataLink2.php?con=GetFullEvents&orderby=" + $OrderBy, true);
        xhttp.send();
    }
    
    var selectedid;
    //Within the function that requests the refresh I do
    selectedid = $('#events').find('li.selected').attr('id');
    //calling the refresh function
    LoadEvents();
    //And trying to reselect the item in the list
    $('#' + selectedid).click();
    
    $.when(LoadEvents()).then($('#' + selectedid).click());
    
    $connect = mysqli_connect($host_name, $user_name, $password, $database);
    
    if(mysqli_connect_errno())
    {
        $query = "SELECT * FROM `Events` WHERE `FinishTime` > '00:00:00' ORDER BY `FinishTime` DESC";
        //Query Result
        if ($result = mysqli_query($connect, $query)) 
        {
            /* fetch associative array */
            while ($obj = mysqli_fetch_object($result)) 
                {
                printf ("%s,", $obj->ID.";".$obj->EventName;
                }
                /* free result set */
                mysqli_free_result($result);
        }
        else
        {
            echo '<p>Connection failed.</p>';
        }
    }
    
    LoadEvents(preselect)
        {
            if (typeof preselect === 'undefined') {
                preselect = false;
            }
    
            var xhttp;
            var EventList;
            xhttp = new XMLHttpRequest();
            xhttp.onreadystatechange = function()
            {
                if (this.readyState == 4 && this.status == 200)
                {
                    EventList =  this.responseText.split(",");
                    //Clear List
                    $('#events').empty();
                    EventList.forEach(function(item, index, array)
                    {
                        if(item !== "")
                        {
                            $ID = item.split(";")[0];
                            $('#events').append('<li class="event" id=\"' + $ID '\">' + item.split(";")[1] + '</li>');
                        }
                    });
    
                    if (preselect) {
                        //And trying to reselect the item in the list
                        $('#' + selectedid).click();
                    }
                }
            };
            xhttp.open("GET", "DataLink2.php?con=GetFullEvents&orderby=" + $OrderBy, true);
            xhttp.send();
        }
    
    LoadEvents()
    {
        var xhttp;
        var EventList;
        xhttp = new XMLHttpRequest();
        xhttp.onreadystatechange = function() 
        {
            if (this.readyState == 4 && this.status == 200)
            {
                EventList =  this.responseText.split(",");
                //Clear List
                $('#events').empty();
                EventList.forEach(function(item, index, array) 
                {
                    if(item !== "")
                    {
                        $ID = item.split(";")[0];
                        $('#events').append('<li class="event" id=\"' + $ID '\">' + item.split(";")[1] + '</li>');
                    }
                    if (index == EventList.length - 1)
                    {
                        $('#' + selectedid).click();
                    }
                });  
            }
        };
        xhttp.open("GET", "DataLink2.php?con=GetFullEvents&orderby=" + $OrderBy, true);
        xhttp.send();
    }