使用从php回显的javascript动态填充表格?

时间:2014-08-11 10:12:06

标签: javascript php jquery html

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

我想将php和js放在单独的文件中,因为在我查看网页来源时,我喜欢3k +行,因为所有的javascript代码都是在脚本标记内生成的,并且由于大量的数据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代码。

如果您可以帮我解决这个问题,我将不胜感激,如果您需要更多详细信息,请告诉我,因为我写了一些简短的例子并且可能不够清楚。

干杯!

2 个答案:

答案 0 :(得分:1)

听说过Ajax?还是jQuery Ajax?

基本上这就是我会这样做的:

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

HTML文件 - 成为视图。

JS \ jQuery - 成为控制者。

Ajax允许您以异步方式请求来自其他服务器的数据或发送数据。

<强> Description of Ajax by jQuery + Examples

所以结构更像是:

enter image description here

答案 1 :(得分:0)

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

这就是我选择做的事情,让PHP不做任何事情,只读数据库并吐出JSON,我有javascript收集并格式化我需要的表格,使用CSS等。

您觉得必须嵌入到JavaScript中的PHP究竟是什么?