我有两个选择框,第二个选择框值取决于第一个选择框。所以基本上我要做的是,在用户在第一个选择框上进行选择之后,它将把第一个选择框的这个值存储为变量。然后它将查询我的数据库,根据第一个选定的值填充第二个选择框。问题是,如何将第一个选择框中的var传递给PHP?我读过其他帖子,人们说这是不可能的,但如果是,那么人们怎么做呢? AJAX?
答案 0 :(得分:3)
如果我理解正确,那么是的,使用AJAX确实是你唯一的选择。
答案 1 :(得分:1)
实际上,您可以使用AJAX调用类似'getSelectionData.php?data ='+ select1.value的内容,它会根据第一个选择框中的选择返回JSON数据数组。然后解析数据并将其输入第二个选择框。
答案 2 :(得分:1)
将onchange
事件侦听器添加到第一个选择框:
document.getElementById("select1").addEventListener("change", function(ev){
var yourstoredvariable = this.value;
someFunctionThatCallsAjax(yourstoredvariable);
}, true);
答案 3 :(得分:0)
您将在第一个<select>
上有一个onchange事件,该事件将使用Ajax查询服务器,其中包含所选<option>
的值,该值将返回用于填充的<option>
元素第二个<select>
元素。
答案 4 :(得分:0)
问题是,如何将第一个选择框中的var传递给PHP?
我认为这里没问题 通常,使用GET方法的普通html表单 有什么关系呢?
答案 5 :(得分:0)
如果我看到你正确使用Jquery。所以你可以这样做:
$('#idOfSelectBox1').change(function(){
jQuery.ajax({
type: "GET",
url:"yourdomain.com/script.php",
data:"selectBox:'"+$('#idOfSelectBox1').val()+"'",
success:function(result){
//do smth with the returned data
}
});
});
在script.php中的做你的魔法并回显你要传回js的内容
答案 6 :(得分:0)
我假设您有一个国家/城市下拉菜单,您可以通过两种方式实现,即良好的AJAX方式和糟糕的方式(更新时刷新页面),我将在jQuery中描述好方法,或者在至少我认为它很好。
这是客户端(即客户端)代码:
<select id="country">
<option value="1">Canada</option>
<option value="2">UK</option>
</select>
<select id="city" disabled="disabled"></select>
<script type="text/javascript">
$('#country').change(function(){
$('#city').load('/ajax-city.php', {id: $(this).val()});
});
</script>
这是ajax-city.php代码(服务器):
<?php
$countryId = $_REQUEST['id'];
$cities = array(); // Get it from db, using mysql_query or anything you want to use
foreach($cities as $city) {
echo "<option id=\"{$city['id']}\">{$city['name']}</option>";
}
PS。你需要在你的html代码中包含jQuery,当然把这两个文件放在同一个目录中(或更改$ .load路径)。
此特定代码未经过测试,我刚刚编写过。但这种方式通常对我很好。