我想使用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代码。
如果您可以帮我解决这个问题,我将不胜感激,如果您需要更多详细信息,请告诉我,因为我写了一些简短的例子并且可能不够清楚。
干杯!
答案 0 :(得分:1)
听说过Ajax?还是jQuery Ajax?
基本上这就是我会这样做的:
PHP文件 - 作为后端只创建响应并控制数据库..
HTML文件 - 成为视图。
JS \ jQuery - 成为控制者。
Ajax允许您以异步方式请求来自其他服务器的数据或发送数据。
<强> Description of Ajax by jQuery + Examples 强>
所以结构更像是:
答案 1 :(得分:0)
为什么不使用XMLHttpRequest来调用PHP页面返回的JSON数据并直接在DOM中构建表?
这就是我选择做的事情,让PHP不做任何事情,只读数据库并吐出JSON,我有javascript收集并格式化我需要的表格,使用CSS等。
您觉得必须嵌入到JavaScript中的PHP究竟是什么?