2016-02-11 22 views
0

我用這個片段從外部數據庫中獲取車輛數據的數據:而不是提交獲得進入頁面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動作只得到基於預先申報價值是每個頁面上不同的數據。

+0

你在哪裏定義$數據?所以,如果我正確地想要在頁面加載時自動提交表單? –

+0

您是否嘗試過使用Ajax? – AJAY

+0

@PuyaSarmidani我編輯了最初的問題。 – RoRo

回答

0

很難回答 - 但我會嘗試使用我的水晶球。 $ data來自數據庫查詢,對不對?

我進一步假設,該查詢從open_data_rdw_kenteken表單字段取值收集$數據

要使表格呈現,您必須使用正確的數據填充$ data。這意味着您必須具有一種默認值open_data_rdw_kenteken才能從數據庫中獲取數據。默認值可以是「全部」,這應該反映在您的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): ?> 

讓你從渲染表。爲了呈現您需要$數據填充正確的數據。

希望能讓你朝正確的方向發展。

+0

非常感謝!這使我指出了正確的方向。我只是用<?php $ data = $ this-> rdw-> get_formatted('CUSTOMFIELDVALUE')加載了$ data。 ?>它完美運作。再次感謝! – RoRo

相關問題