两个下拉列表并使用PHP保存在数据库中

时间:2014-05-10 07:10:02

标签: javascript php jquery drop-down-menu insert

在该项目中,我想创建两个下拉列表(类别,项目)。如果我选择一个名为car的类别,那么项目下拉列表应该包含:Honda,Volvo,Nissan。

如果我选择一个名为phone的类别,则项目下拉列表应包含:iPhone,Samsung,Nokia。

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保存数据库中的第一个下拉列表(cat)和第二个下拉列表(项目),但是错误。 帮我把这两个下拉列表保存在数据库中。

4 个答案:

答案 0 :(得分:0)

尝试定义变量并尝试

var cars=new Array("Mercedes","Volvo","BMW","porche");
var phones=new Array('Samsung','Nokia','Iphone');

答案 1 :(得分:0)

试试这个 - 你的选择没有任何名字=你的价值完​​全错误

<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>');
    });
}

}

答案 2 :(得分:0)

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   
}

答案 3 :(得分:0)

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

    ?>