我需要使用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的值。
提交时如何获得价值并使用它?
最佳答案
您的第二个<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>