我需要使用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的值。
如何在提交时获取价值并使用它?
答案 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>