我使用此代码段从外部数据库获取车辆数据:
<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操作,而是根据每个页面上不同的预先声明的值获取数据。
答案 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。
希望能让你朝着正确的方向前进。