实施多个客户清单

时间:2019-05-08 16:16:41

标签: php html

我正在开发一个票务管理网站,执行这些票证的是技术人员,他们负责提供客户服务。技术人员每月,每年或每季度必须检查设备,以便管理人员可以知道设备是否需要维护。这些客户中的每个客户都有不同数量的设备,例如客户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>

1 个答案:

答案 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渲染中放置一个类型并进行查询。