两个下拉列表和保存在数据库与PHP


Two dropdown list and save in database with PHP

在该项目中,我想创建两个下拉列表(类别,项)。如果我选择了一个命名为汽车的类别,那么项目下拉列表应该有:本田,沃尔沃,日产。

如果我选择了一个名为手机的类别,那么下拉列表项应该有: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的页面上处理数据,您可以尝试这样做:

HTML:

<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);
    ?>