【问题标题】:Fetched data not being displayed on a new page (JavaScript/HTML)获取的数据未显示在新页面上 (JavaScript/HTML)
【发布时间】:2016-07-20 09:58:50
【问题描述】:

我正在尝试将从查询中获取的数据显示在不同的页面上,但是数据没有显示在新页面上。

表格与数据正确显示在与搜索相同的页面上,但是当我尝试更改内容以使数据显示在新页面上时它不起作用。

我使用的是 JQuery mobile,所以它是一个单页结构(index.html 下的所有页面),我将所有的 javascript 放在一个单独的文件中。

谁能看到这里的问题?

获取数据函数:

    function fetchEvent()
             {
          db = window.openDatabase("SoccerEarth", "2.0", "SoccerEarthDB", 2*1024*1024);
          db.transaction(foundEvent, errorCB);
         }

          function foundEvent(tx)
            {
            var TitleT = document.getElementById("texttitle").value;
           tx.executeSql("SELECT * FROM SoccerEvents WHERE Title LIKE '%" + TitleT + "%'", [], renderEvent);
                        }

function renderEvent(tx, response) {
   /* var div = document.getElementById("responsediv"); */
    var temp = "<table border=\"1\"><tr><th>Title</th><th>Location</th><th>NoPeople</th><th>Date</th><th>Description</th></tr>";

    for (var i = 0; i < response.rows.length; i++) {
        temp += "<tr><td>" + response.rows.item(i).Title + "</td><td>" + response.rows.item(i).Location + "</td><td>" + response.rows.item(i).NoPeople + "</td><td>" + response.rows.item(i).Date + "</td><td>" + response.rows.item(i).Description + "</td></tr>";
         /* div.innerHTML = temp; */
    }
    var page6 = window.open("#page20", "mywin", '');
    page6. dataFromParent = temp;
    page6.render();
}
    var dataFromParent;
    function render() {
        $('datadisplay').innerHTML(dataFromParent);
    }

HTML(第 6 页):

    <div data-role="page" id="page20" data-theme="d">

    <div data-role="content">
        <div id="datadisplay">
        </div>
    </div>
</div>

【问题讨论】:

  • 您需要 # 使用 jquery 通过 id 选择一个元素 => $('#datadisplay') 还要确保在 render() 被调用之前尽快从您的查询中填充 dataFromParent
  • 我将 elementbyid 从 responsediv 更改为 datadisplay,但没有任何变化。您还有其他问题吗?
  • log 或 alert(dataFromParent) 在 render() 中查看是否得到任何东西
  • 还是什么都没有。该页面正确打开,但没有数据。所以我认为问题与在 div 中显示的数据有关,也许?
  • 你能给出答案吗?

标签: javascript jquery html database cordova


【解决方案1】:
for (var i = 0; i < response.rows.length; i++) {
        temp += "<tr><td>" + response.rows.item(i).Title + "</td><td>" + response.rows.item(i).Location + "</td><td>" + response.rows.item(i).NoPeople + "</td><td>" + response.rows.item(i).Date + "</td><td>" + response.rows.item(i).Description + "</td></tr>";
         /* div.innerHTML = temp; */
    }

好的,所以你想要一个不同的页面来显示你的数据,当你移动到另一个页面响应对象时,你的数据会丢失。我建议你制作一个全新的页面。 这一行有一些东西。

 var formElements = "<table id='resulttable' data-role='table' data-mode='reflow' class='ui-responsive table-stroke table-stripe'><thead><tr><th>Title</th><th>Location</th><th>NoPeople</th><th>Date</th><th>Description</th></tr></thead><tbody>";
                        for (var i = 0; i < response.rows.length; i++) {
                           formElements += "<tr><td>" + response.rows.item(i).Title + "</td><td>" + response.rows.item(i).Location +"</td><td>" + response.rows.item(i).NoPeople + "</td><td>" + response.rows.item(i).Date +"</td><td>" + response.rows.item(i).Description + "<a href='map.html' rel='external' data-ajax='false' data-role='button' data-mini='true'>View on Map</a></td></tr>";
                        }

                formElements+="</tbody></table>";
                $('#page_body').append('<div data-role="page" data-theme="d" id="' + page_id + '"><div data-role="content">' + formElements + '<a href="#page4" data-role="button" data-mini="true">Return</a></div></div>');
                $.mobile.initializePage();
                $.mobile.changePage("#" + page_id);

page_id是动态页面的具体id,可以设置

现在您可能需要根据您的情况进行一些自定义。但逻辑是您从头开始制作整个 div 并附加它。现在您需要编写一个函数 FORWARD() ,它将具有您的导航逻辑和 BACK ,它将具有您的 BACK 功能逻辑。 希望对您有所帮助。

【讨论】:

  • 感谢这位朋友。我的 JavaScript 知识不是太丰富,所以上面的内容有点意思,但不足以让我成为将所有内容放在一起的表格。如果你有空,我们可以做 jsfiddle 吗?
  • 好的,我是 stackoverflkow 的新手,从未使用过 JS fiddle。但我肯定会尽力提供帮助。
  • 你有Skype吗?因为我们需要即时聊天
  • 我已经把我的代码放在这里了,所以你只要加入会议就可以改变代码。我也将参加会议。 jsfiddle.net/xjqvh3qb/1/#&togetherjs=HAo6CqaVv2
猜你喜欢
  • 2016-04-13
  • 2017-06-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-07-04
  • 1970-01-01
  • 2021-06-06
  • 1970-01-01
相关资源
最近更新 更多