我有一个使用codeigniter框架开发的项目。
我有一个所有国家的下拉列表。
当用户从下拉列表中选择一个国家时,我需要显示有关该特定国家的信息。。。
我该怎么做?
我建议你这样做,不管你使用什么框架:
- 开发一个服务器端PHP脚本,该脚本通过输入您的国家参数来响应所选国家的信息
- 当您在UI的
<select>
中触发onChange
事件时,激发AJAX调用以获取服务器端PHP脚本的响应,并将其显示在<div>
或UI的某个区域中
如果允许您使用jQuery,这可以变得简单。为您的<select>
标签设置一个ID
:
<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()
函数在数据库服务器上执行查询,并根据国家获取一行
希望这能引导你朝着正确的方向前进!
例如,您可以在JQuery中使用.change().来执行此操作
这将触发每次您更改国家/地区时,您需要获得国家/地区名称,然后显示所需信息。
如果你想使用vanillaJS,你可以使用onChange。
这不能仅用PHP完成,如果"关于特定国家的信息"来自后端,则需要JavaScript(例如)和AJAX。在下拉列表中添加一个更改侦听器,如果它触发,则相应地更新HTML。