2014-10-20 66 views
-2

中顯示關於下拉列表中選定選項的詳細信息我有一個使用codeigniter框架開發的項目。如何在php

因爲我有一個所有國家的下拉列表。

當用戶選擇從下拉菜單中,我需要顯示有關特定國家信息的國家之一......

我怎麼能這樣做?

+0

你可以在查詢中更精確嗎?這非常含糊! – 2014-10-20 11:35:47

+0

自己開發這個代碼 – 2014-10-20 11:36:11

+0

你想要顯示國家的信息嗎? – Sandesh 2014-10-20 11:38:28

回答

0

你可以在JQuery中使用例如.change()

這會在您每次更改國家時觸發,您需要獲取國家/地區名稱,然後顯示所需信息。

如果你想使用香草JS,你可以使用onChange

0

這不能單獨使用PHP完成,如果「關於該特定國家/地區的信息」來自後端,則需要JavaScript(example)和AJAX。將更改偵聽器添加到下拉列表中,如果觸發,則相應地更新HTML。

2

我會建議你做這樣一來,不管框架的使用:

  1. 開發服務器端PHP腳本,與有關所選國家的信息作出響應,與貴國的參數的輸入。
  2. 當您在UI中的<select>中觸發onChange事件時,觸發一次AJAX調用,獲取服務器端PHP腳本的響應,並在<div>或用戶界面的某個區域中顯示它。

如果你被允許使用jQuery,這可以變得簡單。有ID<select>標籤:

<select id="countries"> 
    <!-- Options populated by php --> 
</select> 

當你做一個onChange事件,結合下面的功能:

$("#countries").change(function(){ 
    countryValue = $(this).val(); 
    $.ajax("countries-info.php", {country: countryValue}, function(message){ 
     $("#countryInfo").html(message); 
    }); 
}); 

最後,你應該有一個類似的結構,你的HTML:

<select id="countries"> 
    <!-- Options populated by php --> 
</select> 
<div id="countryInfo"></div> 

而在你的countries-info.php,你應該有這樣的事情:

<?php 
    $country = clean($_GET["country"]); 
    // Connect to the DB 
    databaseConnect($username, $password, $database); 
    $results = $databaseObject->query("SELECT `info` FROM `countries` WHERE `country`='$country'"); 
    $countryInfo = $results["info"]; 
    die($countryInfo); 
?> 

以上是你需要做的僞代碼:

  • clean()用於清潔從任何SQL注入的響應。如果您使用MySQL,則可以使用mysqli_real_escape_string()之類的內容。
  • databaseConnect()用於連接數據庫服務器並選擇數據庫。
  • $databaseObject是數據庫連接對象。
  • $databaseObject->query()函數在數據庫服務器上執行查詢並根據國家提取一行。

希望這會引導您朝着正確的方向發展!

+0

如果不使用javascript,我可以訪問下拉列表的值嗎? – 2014-10-20 12:19:20

+0

@SwathiS您需要使用JavaScript來獲取DOM的內容並對其進行操作。如果沒有,你需要更多的服務器端處理,以採取當前狀態和類似的東西。易於使用JavaScript。 – 2014-10-20 12:27:58

+1

爲什麼要實現新的連接(正如前面提到的那樣,它是使用CI開發的,可以獲得Connection):P ..但是,我很欣賞PHP-MYSQLI處理的方式 – 2014-10-21 08:16:37