在该项目中,我想创建两个下拉列表(类别,项)。如果我选择了一个命名为汽车的类别,那么项目下拉列表应该有:本田,沃尔沃,日产。
如果我选择了一个名为手机的类别,那么下拉列表项应该有:iPhone,三星,诺基亚。
HTML: <select id="cat">
<option val="car">car</option>
<option val="phone">phone</option>
</select>
<select id="item">
</select>
JavaScript: cars=new Array("Mercedes","Volvo","BMW","porche");
phones=new Array('Samsung','Nokia','Iphone');
populateSelect();
$(function() {
$('#cat').change(function(){
populateSelect();
});
});
function populateSelect(){
cat=$('#cat').val();
$('#item').html('');
if(cat=='car'){
cars.forEach(function(t) {
$('#item').append('<option value="cars[]">'+t+'</option>');
});
}
if(cat=='phone'){
phones.forEach(function(t) {
$('#item').append('<option value="phones[]">'+t+'</option>');
});
}
}
然后在PHP中:
$cat=$_request['cat'];
$phones=$_request['phones'];
我想保存第一个下拉框(猫)和第二个下拉框(项)在数据库与PHP,但错误。
试试这个-你的select没有任何name =和你的值是完全错误的
<select name="cat[]" id="cat">
<option val="car">car</option>
<option val="phone">phone</option>
</select>
<select name="item[]" id="item">
</select>
cars=new Array("Mercedes","Volvo","BMW","porche");
phones=new Array('Samsung','Nokia','Iphone');
populateSelect();
$(function() {
$('#cat').change(function(){
populateSelect();
});
});
function populateSelect(){
cat=$('#cat').val();
$('#item').html('');
if(cat=='car'){
cars.forEach(function(t) {
$('#item').append('<option value="cars'+t+'">'+t+'</option>');
});
}
if(cat=='phone'){
phones.forEach(function(t) {
$('#item').append('<option value="'+t+'">'+t+'</option>');
});
}
}
尝试定义变量并尝试
var cars=new Array("Mercedes","Volvo","BMW","porche");
var phones=new Array('Samsung','Nokia','Iphone');
1。要用PHP从selects
检索值,它们需要在用户提交给处理数据的页面的form
中。selects
也需要一个name
属性。
2)。<option val=
不正确。应该是<option value=
。注意,如果省略value属性,则选项本身就是该值。
3)。$_request
区分大小写,需要大写:$_REQUEST
假设您将在名为processor.php
的页面上处理数据,您可以尝试这样做:
<form action="processor.php" method="POST">
<select id="cat" name="cat">
<option value="car">car</option>
<option value="phone">phone</option>
</select>
<select id="item" name="item">
</select>
<input type="submit" name="submit" />
</form>
JAVASCRIPT: cars=new Array("Mercedes","Volvo","BMW","porche");
phones=new Array('Samsung','Nokia','Iphone');
populateSelect();
$(function() {
$('#cat').change(function(){
populateSelect();
});
});
function populateSelect(){
cat=$('#cat').val();
$('#item').html('');
if(cat=='car'){
cars.forEach(function(t) {
$('#item').append("<option value='"+t+"'>"+t+"</option>");
});
}
if(cat=='phone'){
phones.forEach(function(t) {
$('#item').append("<option value='"+t+"'>"+t+"</option>");
});
}
}
PHP:(在本例中,表单被提交到示例页面processor.php
)
if (isset($_POST['submit'])) {
$cat = $_POST['cat'];
$item = $_POST['item'];
// You now have the user selections saved in the above variables and
// can proceed with inserting them into the database...
// ... use mysqli or pdo to connect to and query the db
}
<form action="http://localhost/rat.html.php" method="POST">
<select name="car" id="car">
<option value="car">Car</option>
<option value="phone">Phone</option>
</select>
<select name="items" id="items">
</select>
<input type="submit" value="submit" name="submit"/>
</form>
<script type="text/javascript" >
var cars=["Mercedes","Volvo","BMW","porche"]
var phones=['Samsung','Nokia','Iphone']
var ele = document.getElementById('car');
ele.onchange = function(){addItem(this.value,"items")}
function addItem(item,id){
var ele = document.getElementById(id);
ele.innerHTML = "";
var elements = (item=="car")?cars : phones;
for(var i=0;i<elements.length;i++){
ele.innerHTML += "<option value="+elements[i]+">"+elements[i]+" </option>"
}
}
</script>
//rat.html.php
<?php
$name = $_POST['car'];
$it = $_POST['items'];
echo($name);
echo($it);
?>