而不是在输入页面php时提交获取数据

时间:2016-02-11 11:53:12

标签: php

我使用此代码段从外部数据库获取车辆数据:

<form method="post" action="<?php echo $_SERVER['REQUEST_URI'] ?>" class="vwe-kenteken-widget">
    <p><input type="text" name="open_data_rdw_kenteken" value="<?php echo $_POST['open_data_rdw_kenteken'] ?>" maxlength="8"></p>
    <p><input name="submit" type="submit" id="submit" value="<?php _e('Kenteken opzoeken', 'open_data_rdw') ?>"></p>
</form>
<?php if($data): ?>
    <h3><?php _e('Voertuiggegevens', 'open_data_rdw') ?></h3>
    <table>
        <?php
        $categories = array();
        foreach ($data as $d) {
            if( !is_array($fields) || in_array($d['name'], $fields) ) {
                if( !in_array($d['category'], $categories) ) {
                    $categories[] = $d['category'];
                    echo '<tr class="open-rdw-header">';
                    echo '<td colspan="2" style="font-weight: bold;">';
                    echo '<a href="#">'.$d['category'].'</a>';
                    echo '</td>';
                    echo '</tr>';
                }
                echo '<tr style="display:none">';
                echo '<td>'.$d['label'].'</td>';
                echo '<td>'.$d['value'].'</td>';
                echo '</tr>';
            }
        }
        ?>
    </table>
<?php endif; ?> 

我想要完成的是加载数据而用户不必输入值并点击提交按钮。输入值将根据用户正在查看的产品页面加载。

编辑:

根据以下内容加载数据:

public function get_json() {
        if ( isset( $_POST['kenteken'] ) ) {
            $data = $this->rdw->get_formatted($_POST['kenteken']);
            foreach ($data as $row) {
                $json['result'][$row['name']] = $row['value'];
            }

            if ($_POST['kenteken']) {
                if ($data[0]['value'] == '') {
                    $json['errors'] = __( 'No license plates found', 'open_data_rdw' );
                }
                else {
                    $json['errors'] = false;
                }   
            }
            else {
                $json['errors'] = __( 'No license plate entered', 'open_data_rdw' );
            }

            header('Content-type: application/json');
            echo json_encode($json);
            die();
        }
    }

因此,不是使用$ _POST操作,而是根据每个页面上不同的预先声明的值获取数据。

1 个答案:

答案 0 :(得分:0)

很难回答 - 但我会尝试使用我的水晶球。 $ data 来自数据库查询,对吗?

我进一步假设,查询从 open_data_rdw_kenteken 表单字段中获取值来收集 $ data

要渲染表格,您必须使用正确的数据填充 $ data 。这意味着您必须具有 open_data_rdw_kenteken 的一种默认值才能从数据库中获取数据。默认值可以是“all”,它应该反映在SQL查询中,或者写为“由产品页面定义”。

伪代码

$data = getData('BT-VP-41'); 

function getData($open_data_rdw_kenteken="")
{
     $where = "";
     if(!empty($open_data_rdw_kenteken)) {
         $where = 'WHERE rdw_kenteken = "'.mysqli_real_escape_string($open_data_rdw_kenteken)';
     }
     $data = myslqi->query("SELECT * FROM dbTbl ".$where)
     return $data;
}

正如我所写 - 这是伪代码,不会开箱即用。你必须适应你的环境。

TL; DR:行

 <?php if($data): ?> 

阻止您呈现表格。要渲染,您需要填充正确数据的$ data。

希望能让你朝着正确的方向前进。