根据另一个 select php 设置可用于 select 的选项
Set the option available for select based on another select php
大陆Table
- 亚洲
- 南美洲
国家Table
- 日本
- 中国
- 巴西
- 秘鲁
这是我的 table 中的数据,我从大洲 table 和国家 table 获取所有数据,就像这样
<select name="continent" class='required InputBox'>
<?php echo "<option value=''></option>";
foreach (Contintent() as $value) {
echo "<option id='" . $value[ 'sysid'] . "' value='" . $value[ 'name'] . "'>" . $value[ 'name'] . "</option>"; } ?>
</select>
这是针对国家/地区的
<select name="country" class='required InputBox'>
<?php echo "<option value=''></option>";
foreach (Country() as $value) {
echo "<option id='" . $value[ 'sysid'] . "' value='" . $value[ 'name'] . "'>" . $value[ 'name'] . "</option>"; } ?>
</select>
我想知道如何实现,当我 select 大陆(例如亚洲)时,可用于县的选项将仅是亚洲的国家/地区,即日本和中国。我还有另一个 table 在此之后是城市,但如果我得到这里的逻辑,我可以将它应用于城市。任何想法表示赞赏
"UPDATE"
找到了东西here
我不熟悉的一个是 ajax 谁能解释一下它是如何工作的 我想知道如何从这个 [=68= 传递 select 的 ID ] 我的 php 功能页面的片段是片段..
$('.continent').change(function() {
var id = $(this).find(':selected')[0].id;
//alert(id);
$.ajax({
type:'POST',
url:'../include/functions.php',
data:{'id':id},
success:function(data){
// the next thing you want to do
console.log(data);
alert(id);
}
});
});
在我的函数中 php
function Country(){
if(isset($_POST['id'])){
echo $_POST['id'];
}
}
问题是 id 的值没有传递我如何将它传递给 function.php 我在这里有点不知所措。它发生在 success:function(data){
我接下来要做什么吗?
FYI
警报正常,它已经获取大陆的 ID,只是没有传递给 function.php
console.log 什么也不写
当我将 url 更改为主页时 select 在 console.log returns 主页代码中的页面。
如前所述,可以使用ajax。
有一种静态的非 ajax 方法,但这种方法在长 运行.
中更好
基本上,您对 jQuery 所做的是监听大陆 select 框中的变化,当发生变化时,您向服务器发出请求:"give me all the countries within this continent".你应该有一个数据库,或者你可以将它们映射到静态对象中只是为了测试它。
$('.continent').change(function() {
var id = $(this).val(); //get the current value's option
$.ajax({
type:'POST',
url:'<path>/getCountries',
data:{'id':id},
success:function(data){
//in here, for simplicity, you can substitue the HTML for a brand new select box for countries
//1.
$(".countries_container").html(data);
//2.
// iterate through objects and build HTML here
}
});
});
这当然会让你在 HTML 中添加 countries_container
并且在其中渲染 select
:
<div class="countries_container"></div>
现在,在实际的 PHP 代码服务器端 (getCountries),您可以执行如下操作:
$id = $_POST['id'];
if(isset($id) && <other validations>)){
// 1. your query to get countries from a given continent
// and for each result you can build the HTML itself
// 2. OR, a better solution is to return an Object and then in the
// success:function(data){ } iterate through it
}
这段代码绝对可以改进,但我试图以一种易于理解的方式对其进行解释。
此外,您应该检查:
Jquery ajax populate dropdown with json response data
Demo of linked drop down list by using Ajax & PHP
请记住,这些是 google 搜索的第一个结果,因此,下一次,尝试 在堆栈溢出本身内搜索以避免重复问题。
大陆Table
- 亚洲
- 南美洲
国家Table
- 日本
- 中国
- 巴西
- 秘鲁
这是我的 table 中的数据,我从大洲 table 和国家 table 获取所有数据,就像这样
<select name="continent" class='required InputBox'>
<?php echo "<option value=''></option>";
foreach (Contintent() as $value) {
echo "<option id='" . $value[ 'sysid'] . "' value='" . $value[ 'name'] . "'>" . $value[ 'name'] . "</option>"; } ?>
</select>
这是针对国家/地区的
<select name="country" class='required InputBox'>
<?php echo "<option value=''></option>";
foreach (Country() as $value) {
echo "<option id='" . $value[ 'sysid'] . "' value='" . $value[ 'name'] . "'>" . $value[ 'name'] . "</option>"; } ?>
</select>
我想知道如何实现,当我 select 大陆(例如亚洲)时,可用于县的选项将仅是亚洲的国家/地区,即日本和中国。我还有另一个 table 在此之后是城市,但如果我得到这里的逻辑,我可以将它应用于城市。任何想法表示赞赏
"UPDATE"
找到了东西here
我不熟悉的一个是 ajax 谁能解释一下它是如何工作的 我想知道如何从这个 [=68= 传递 select 的 ID ] 我的 php 功能页面的片段是片段..
$('.continent').change(function() {
var id = $(this).find(':selected')[0].id;
//alert(id);
$.ajax({
type:'POST',
url:'../include/functions.php',
data:{'id':id},
success:function(data){
// the next thing you want to do
console.log(data);
alert(id);
}
});
});
在我的函数中 php
function Country(){
if(isset($_POST['id'])){
echo $_POST['id'];
}
}
问题是 id 的值没有传递我如何将它传递给 function.php 我在这里有点不知所措。它发生在 success:function(data){
我接下来要做什么吗?
FYI
警报正常,它已经获取大陆的 ID,只是没有传递给 function.php console.log 什么也不写 当我将 url 更改为主页时 select 在 console.log returns 主页代码中的页面。
如前所述,可以使用ajax。 有一种静态的非 ajax 方法,但这种方法在长 运行.
中更好基本上,您对 jQuery 所做的是监听大陆 select 框中的变化,当发生变化时,您向服务器发出请求:"give me all the countries within this continent".你应该有一个数据库,或者你可以将它们映射到静态对象中只是为了测试它。
$('.continent').change(function() {
var id = $(this).val(); //get the current value's option
$.ajax({
type:'POST',
url:'<path>/getCountries',
data:{'id':id},
success:function(data){
//in here, for simplicity, you can substitue the HTML for a brand new select box for countries
//1.
$(".countries_container").html(data);
//2.
// iterate through objects and build HTML here
}
});
});
这当然会让你在 HTML 中添加 countries_container
并且在其中渲染 select
:
<div class="countries_container"></div>
现在,在实际的 PHP 代码服务器端 (getCountries),您可以执行如下操作:
$id = $_POST['id'];
if(isset($id) && <other validations>)){
// 1. your query to get countries from a given continent
// and for each result you can build the HTML itself
// 2. OR, a better solution is to return an Object and then in the
// success:function(data){ } iterate through it
}
这段代码绝对可以改进,但我试图以一种易于理解的方式对其进行解释。
此外,您应该检查:
Jquery ajax populate dropdown with json response data
Demo of linked drop down list by using Ajax & PHP
请记住,这些是 google 搜索的第一个结果,因此,下一次,尝试 在堆栈溢出本身内搜索以避免重复问题。