繁体   English   中英

使用从PHP回显的JavaScript动态填充表格?

[英]Populate a table dynamically using javascript echoed from php?

我想用一些使用http请求从数据库中获得的数据填充表。 我用php脚本获取json编码的数据,然后使用从php脚本回显的jquery填充表。 我看起来一点也不整洁,我想知道如何才能做到这一点。

我想将php和js放在单独的文件中,因为当我查看网页的源代码时,我喜欢3k +行,因为所有javascript代码都是在script标签内生成的,并且由于大量数据,javascript代码得到了重复。 我必须使用的实际数据将比现在用于测试的数据还要大。

为了让您更好地了解自己目前正在做什么,我将在此处编写一些虚拟代码:

<?php
require_once ('functions.php');
include 'header.html';
include 'standardTable.html';

$results = file_get_contents("http://url.com");
$decodedResult = json_decode($results, true);

// I have a function that creates and empty table based on how big the data set is 
// This function is placed in functions.php
CreateEmptyTable($decodedResults);

// Then I go ahead and populate the table based on some rules
PopulateTable($decodedResults);

function PopulateTable($res)
{
    $rowNum = 0;
    for ($i=0;$i<count($res);$i++)
    {
        $rowNum++;
        foreach($res as $key => $value)
        {
            if ($key == "something")
                echo '$("tbody tr#row_'.$rowNum.'")
                   .find("td:nth-child(id_based_on_key)").text("'.$value.'");
                ';
            else if ($key == "something_else")
                echo 'some other jquery lines';
        }
    }
}

include 'footer.html';

因此,正如您所看到的那样,这看起来并不漂亮,所以我想知道是否可以用另一种方式来构造代码。 要记住的是,我必须将php值传递给javascript代码。

如果您能为我提供帮助,我们将不胜感激,如果您需要更多详细信息,请告诉我。

干杯!

听说过阿贾克斯吗? 还是jQuery Ajax?

好吧,基本上这是我会做的:

PHP文件-作为后端-仅创建响应并控制数据库。

HTML文件-成为视图。

JS \\ jQuery-成为控制器。

Ajax允许您异步地从其他服务器请求数据或发送数据。

jQuery +示例对Ajax的描述

因此,结构将更像是:

在此处输入图片说明

为什么不使用XMLHttpRequest来调用PHP页面返回的JSON数据并将表直接构建到DOM中呢?

这就是我会选择做的事情,让PHP除了读取数据库并吐出JSON外什么都不做,我将让javascript收集它并以我需要的方式格式化表格,利用CSS等。

您认为必须嵌入JavaScript的PHP中到底有什么?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM