使用html和php连接两个combox和DB

时间:2018-02-25 08:40:07

标签: javascript php html

我需要使用php将html中的两个combox连接到DB,并使用combox中的结果从DB中获取其他内容

例如

<div style="margin:5px">סוג הפעילות
    <select name = "ex" id = "user" onchange="showUser(this.value)">
         <option value = "0">  </option>
     <?php while($row = mysqli_fetch_array($res)){ ?>
        <option value = "<?php echo $row['NameEx'];?>"><?php echo $row['NameEx'];}?></option>
    </select>
</div>

<div  name = "sub" id="sub" style="margin:5px"> תת פעילות</div>
<div><button class="btn btn-primary" type = "submit" name="submit1" onclick = "calc()" >חשב</button></div>

我的javascript是:

    function showUser(str){

        if(str == ""){

        }else{
            var myDiv = document.getElementById("sub");
            var arr = [];
             var status = false;
            $.ajax({ //sending to DB
               url: 'subEx.php',
               type: 'post',
               data: { field:str},

               success:function(response){                     
                   var parsed = JSON.parse(response);
                    for(var x in parsed){
                      arr.push(parsed[x]);
                    }
                  // console.log(arr[0]);
                    //Create and append select list
            var selectList = document.createElement("select");
            selectList.setAttribute("id", "mySelect");

            myDiv.appendChild(selectList);

            //Create and append the options


            for(var i = 0 ; i <= arr.length ; i ++){
            console.log(arr[0].NameSub);

            var option = document.createElement("option");
            option.setAttribute("value", arr[i].NameSub);
            option.text = arr[i].NameSub;
            selectList.appendChild(option);




            }


        }
            });

            return true;
        }
    } 

我将两个combox连接到数据库,但是当我提交提交时,我无法访问第二个combox的值。

如何在提交时获取价值并使用它?

1 个答案:

答案 0 :(得分:1)

您的第二个<select>代码没有name属性。因此,提交时不会发送任何内容。

selectList.setAttribute("name", "name_of_select");

然后,您应该在服务器端提供$_POST['name_of_select']

此外,在您的HTML中,您应该有<form>标记才能提交您的值 最后,您的while循环似乎未公开。

<form method="post" action="action.php">
    <div style="margin:5px">סוג הפעילות
       <select name="ex" id="user" onchange="showUser(this.value)">
           <option value="0">  </option>
           <?php while($row = mysqli_fetch_array($res)){ ?>
           <option value="<?php echo $row['NameEx'];?>"><?php echo $row['NameEx'];?></option>
           <?php } /*end while */ ?>
       </select>
    </div>

    <div name="sub" id="sub" style="margin:5px"> תת פעילות</div>
    <div><button class="btn btn-primary" type="submit" name="submit1" onclick="calc()" >חשב</button></div>
</form>