我有一个使用codeigniter框架开发的项目。
我有一个所有国家的下拉列表。
当用户从下拉列表中选择一个国家/地区时,我需要显示有关该特定国家/地区的信息...
我该怎么做?
答案 0 :(得分:2)
无论您使用哪种框架,我建议您这样做:
onChange
中触发<select>
事件时,触发一个AJAX调用,获取服务器端PHP脚本的响应并将其显示在<div>
或某些区域中。 UI。如果允许您使用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()
函数在数据库服务器上执行查询,并根据国家/地区获取一行。希望这能引导你朝着正确的方向前进!
答案 1 :(得分:0)
您可以使用.change()在JQuery中执行此操作。
每次更改国家/地区时都会触发此操作,您需要获取国家/地区名称,然后显示所需信息。
如果您想使用vanilla JS,可以使用onChange。
答案 2 :(得分:0)
这不能单独使用PHP,如果“有关该特定国家/地区的信息”来自后端,则需要JavaScript(example)和AJAX。将更改侦听器添加到下拉列表中,如果它触发,则相应地更新HTML。