2011-05-04 117 views
1

如何通過選擇的下拉菜單自動填充數據庫中的數據? 和我的下拉結果已經出現爲好,代碼如下:根據下拉選擇自動填充,需要幫助

<?php 
    echo '<tr> 
    <td>'.$customer.'</td> 
    <td><select name="customer_id">'; 

    foreach ($customers as $customer) { 
     if ($customer['customer_id'] == $customer_id) { 
      echo '<option value="'.$customer['customer_id'].'" selected="selected">'.$customer['name'].'</option>'; 
     } else { 
      echo '<option value="'.$customer['customer_id'].'">'.$customer['name'].'</option>'; 
     } 
    } 
    echo '</select> 
     </td> 
    </tr>'; 
?> 

和下拉的結果上面列出的

  • 管理
  • customer1表
  • 免費

從以下db加載

INSERT INTO `my_customer` (`customer_id`, `name`, `firstname`, `lastname`) VALUES 
(8, 'admin', '', ''), 
(6, 'customer1', 'ok', ''), 
(7, 'FREE', 'marj', 'om'); 

所以每當下拉列表中選擇我想下面的所有數據:

<tr> 
<td><?php echo $firstname; ?></td> 
<td><?php echo $lastname; ?></td> 
</tr> 

也自動填入,它似乎需要的JavaScript/AJAX/jQuery來固定它,我想知道,如果有人可以幫助我,謝謝提前


Addtion JSON CALL

我有JSON通話已經是小號以下: (讓說這話放在customer.php網址爲的index.php P =頁/客戶?)

public function customers() { 
    $this->load->model('account/customer'); 
    if (isset($this->request->get['customer_id'])) { 
     $customer_id = $this->request->get['customer_id']; 
    } else { 
     $customer_id = 0; 
    } 

    $customer_data = array(); 
    $results = $this->account_customer->getCustomer($customer_id); 
    foreach ($results as $result) { 
     $customer_data[] = array(
      'customer_id' => $result['customer_id'], 
      'name'  => $result['name'], 
      'firstname'  => $result['firstname'], 
      'lastname'  => $result['lastname'] 
     ); 
    } 

    $this->load->library('json'); 
    $this->response->setOutput(Json::encode($customer_data)); 
} 

和DB

public function getCustomer($customer_id) { 
    $query = $this->db->query("SELECT DISTINCT * FROM " . DB_PREFIX . "customer WHERE customer_id = '" . (int)$customer_id . "'"); 
    return $query->row; 
} 
+0

究竟是什麼你試圖做...嘗試重新短語你的問題,使人們可以正確地理解它。 – 2011-05-04 12:38:31

回答

0

假設你正在使用jQuery,您將聽取選擇更改事件,然後對將返回數據的PHP函數執行ajax調用。數據將被輸出到適當的地方。我建議,爲下一個標籤設置ID屬性:<select><td>的名稱,<td>爲姓,像這樣:

<select name="customer_id" id="customer_id>...</select> 

<td id="firstname"> echo firstname </td> 
<td id="lastname"> echo lastname </td> 

然後jQuery代碼:

<script type="text/javascript">//<!-- 
$(document).ready(function(){ 
    $('select#customer_id').change(function(){ 
     $.post(
      "http://www.domain.com/my_php_script.php", 
      {customer_id: $(this).val()}, 
      function(data){ 
       $('td#firstname').html(data.firstname); 
       $('td#lastname').html(data.lastname); 
      } 
     ); 
    }); 
}); 
//--></script> 

假設你my_php_script.php從檢索數據數據庫由下式給出在CUSTOMER_ID和$_POST['customer_id']返回等echo json_encode(array('firstname' => FIRSTNAME_FROM_QUERY, 'lastname' => LASTNAME_FROM_QUERY));

ADDITION JSON對象: 有兩種選擇如何解決這個問題 - 在JS代替

$.post() 

你必須在你的PHP腳本中使用

$.get(...) 

OR,而不是

$this->request->get['customer_id'] 

你有使用

$this->request->post['customer_id'] 

在每一個地方......這應該這樣做... 例如爲:

<script type="text/javascript">//<!-- 
$(document).ready(function(){ 
    $('select#customer_id').change(function(){ 
     $.get(
      "http://www.domain.com/my_php_script.php", 
      {customer_id: $(this).val()}, 
      function(data){ 
       $('td#firstname').html(data.firstname); 
       $('td#lastname').html(data.lastname); 
      } 
     ); 
    }); 
}); 
//--></script> 
+0

@shadyyx,非常感謝您的關注和建議,我暫時放棄了您的代碼,但看起來我還沒有得到任何幸運,所以我編輯了以前的代碼,包括json調用,請看看,讓我知道如何解決了它。再次感謝 – omc11 2011-05-04 17:13:59

+0

哦,我明白了。我編輯我的答案,以適應您的附加代碼... – shadyyx 2011-05-04 21:07:48

+0

嗨,再次感謝隊友,我已經使用它,但似乎不會工作,沒有數據填充。我該做什麼? – omc11 2011-05-05 04:43:08