我正在开发一个票务管理网站,执行这些票证的是技术人员,他们负责提供客户服务。技术人员每月,每年或每季度必须检查设备,以便管理人员可以知道设备是否需要维护。这些客户中的每个客户都有不同数量的设备,例如客户A有AC,但客户B没有AC。 如果客户端A为PM1 = AC,则PM是要查询的测量点。 我有一个表,其中包含已实施的所有客户端所需的所有PM,我在想可以将客户端名称与该客户端具有的PM相关联,因此我可以自动生成表,仅查询该客户端中的哪个PM,然后提交通过邮寄$ .ajax({}) 我当前的问题是要注意如何在此URL中看到为该客户端生成的PM。 如果我通过客户端名称在此URL中进行第二次查询以获取PM,我已经知道哪些字段,但这会减慢整个过程吗?甚至在代码级别上也很实用....
我保存PM的表格如下:
| Inspection_Time | B_Value | C_Value | client | |------------------|---------|---------|--------| | dd-mm-yyyy hh:mm | OK | OK | A | | dd-mm-yyyy hh:mm | OK | OK | B |
但是,由于我有多个客户端具有不同的清单,因此我不确定如何执行该实现,因此任何人都不知道应如何执行?
目前,我有几个文件,每个客户的每个清单的配置(不太实际)
实际代码示例:
<?php
if($cliente == "001"){
include("prev.tab/$cliente.php")
}elseif($cliente == "002"){
include("prev.tab/$cliente.php")
}
[...]
}elseif($cliente == "500"){
include("prev.tab/$cliente.php")
}
?>
编辑 'include(“ prev.tab/001.php”)'中的代码示例:
<div class="table-wrap mt-40">
<div class="table-responsive">
<table class="table table-striped table-bordered mb-0">
<thead>
<tr>
<th>P.M.</th>
<th>status</th>
<th>OBS</th>
</tr>
</thead>
<tbody>
<tr>
<td>ALARM EXT.</td>
<td>
<select name="pm8" class="form-control select2" size="1" required >
<option value="N/A">N/A</option>
<option value="NOK">NOK</option>
<option value="OK">OK</option>
</select>
</td>
<td>
<input type="text" class="form-control" placeholder="N/A"name="pm8obs">
</td>
</tr>
<tr>
<td>other</td>
<td>
<select class="form-control select2" size="1" required name="pm9">
<option value="N/A">N/A</option>
<option value="NOK">NOK</option>
<option value="OK">OK</option>
</select>
</td>
<td>
<input type="text" class="form-control" placeholder="N/A"name="pm9obs">
</td>
</tr>
</tbody>
</table>
</div>
</div>
答案 0 :(得分:1)
这是一个很大的问题。我的建议是使用json。您可以将服务器直接存储在客户文件夹下的各个位置,以客户ID作为查询的数据库,类似于db的S3存储桶等。
从那里开始,格式是一个问题。如果每个客户都可以创建自己的问题,而他们只是选择问题,那么可以使用如下所示的简单方法,索引就是它们出现在代码中的位置。
$json = '{
"headers" : ["P.M", "status", "OBS"],
"questions": [
{
"name" : "pm8",
"text": "ALARM EXT",
"options": [
{
"display" : "N/A",
"value" : "N/A"
},
{
"display" : "OK",
"value" : "OK"
},
{
"display" : "NOK",
"value" : "NOK"
}
]
},
{
"name" : "pm9",
"text": "other",
"options": [
{
"display" : "N/A",
"value" : "N/A"
},
{
"display" : "OK",
"value" : "OK"
},
{
"display" : "NOK",
"value" : "NOK"
}
]
}
]
}';
使用类似的方法,您可以使用php作为对象和一些简单循环访问数据:
<?php
//Access the data this is an example
//I am not sure what you will use.
//Just assuming a similar data structure is returned.
$json = your_storage($cliente);
//Change that JSON to an associative array
$data = json_decode($json, TRUE);
//Drop out of PHP to set up the html
?>
<div class="table-wrap mt-40">
<div class="table-responsive">
<table class="table table-striped table-bordered mb-0">
<thead>
<tr>
<?php
//In PHP again use what was retrieved earlier
foreach($data["headers"] as $header){
echo "<th>$header</th>";
}
?>
</tr>
</thead>
<tbody>
<?php
foreach($data["questions"] as $question){
echo '<tr>';
echo "<td>$question[text]</td>";
echo '<td>';
echo "<select name='$question[name]' class='form-control select2' size='1' d >";
foreach($question["options"] as $option){
echo "<option value='$option[value]'>$option[display]</option>";
}
echo '</select>';
echo '</td>';
echo '<td>';
echo '<input type="text" class="form-control" placeholder="N/A"name="pm8obs">';
echo '</td>';
echo '<tr>';
}
?>
</tbody>
</table>
</div>
</div>
通常,我不会像这样落入PHP。我使用Twig创建模板,但这是我不想在此处引入的其他设置。
这也是可扩展的。如果需要,可以放置一个必需的标记以将问题标记为必需。如果还有更多选择,那么您可以在php渲染中放置一个类型并进行查询。