[英]Change the selectedIndex in a combo box according to data loaded from a database (PHP)
我有一个Employees数据库和一个用PHP生成的下拉列表,然后使用javascript我试图将每个员工的正确类型的血液放在数据库中。
我有一个Employees数据库和一个用PHP生成的下拉列表,然后使用javascript我尝试为数据库中的每个员工输入正确的血型。
首先我检索了数据:
$rsEmployee = employee::getEmployees();
while($row = mysql_fetch_assoc($rsEmployee))
{
echo "
<select id='slcBloodType' name='slcBloodType' onload='chooseItem(this, '$row['slcBloodType']')'>
<option value='A+'> A+ </option>
<option value='A-'> A- </option>
<option value='B+'> B+ </option>
<option value='B-'> B- </option>
<option value='AB+'> AB+ </option>
<option value='AB-'> AB- </option>
<option value='O+'> O+ </option>
<option value='O-'> O- </option>
</select>";
}
javascript函数:
function elegirOption(list, value){
array = ["A+", "A-", "B+", "B-", "AB+", "AB-", "O+", "O-"];
index = -1;
for(var i = 0; i < array.length; i++){
if(value == array[i]){
index = i;
break;
}
}
if(index != -1){
this.selectedIndex = index;
}
}
但是不起作用,似乎我无法将php变量作为参数传递给javascript函数...
还有其他下拉列表,我想用它做。
为什么不这样做:
$blood_types = array("A+", "A-", ...);
echo '<select>';
while(....) {
foreach($blood_types as $blood_type) {
echo '<option';
if($blood_type == $row['slcBloodType'])
echo 'selected="selected"';
echo '>'.$blood_type.'</option>';
}
}
您不必指定value属性,因为它与文本相同。
首先,您的代码有几个问题,例如重复的ID,这是不好的。 Gere是我如何做到的,这是对你的代码的大规模清理,但应该使它非常接近你所拥有的:
在您的页面的开头
将数据加载到内存中然后在输出中稍后重复使用它总是更好。 不,除非你有100万行,记忆不应该成为问题......
<?php
//Read my data i need to work with
$rsEmployee = employee::getEmployee();
$employees = array();
while($row = mysql_fetch_assoc($rsEmployee)){
$employees[] = $row;
}
进一步向下页面标题
现在,我们将创建初始化代码......您需要JQUERY来完成这项工作。 这是一种非常好的浏览器无法识别的工作方式,可以帮助您避免麻烦。
?><script>
$(function(){ <?php
foreach($employees as $employee){ ?>
$('#slcBloodType<?php echo $employee['id']; ?>').val('<?php echo $employee['slcBloodType']; ?>');
<?php } ?>
});
</script><?php
进一步向下页面的HTML部分
好吧,此时,您现在输出HTML并确保您的ID是唯一的:
<?php foreach($employees as $employee){ ?>
<select id="slcBloodType<?php echo $employee['id']; ?>" name="slcBloodType[<?php echo $employee['id']; ?>]">
<option value='A+'> A+ </option>
<option value='A-'> A- </option>
<option value='B+'> B+ </option>
<option value='B-'> B- </option>
<option value='AB+'> AB+ </option>
<option value='AB-'> AB- </option>
<option value='O+'> O+ </option>
<option value='O-'> O- </option>
</select>
<?php } ?>
祝你好运应用这种更好的编码技术,如果你现在开始这样编码,它会为你节省麻烦!
但是不起作用,似乎我无法将php变量作为参数传递给javascript函数...
这是因为您无法直接将PHP变量传递给javascript。
你的选择是:
有PHP回显javascript代码和inbetween有PHP变量打印出来。 例如:
<script language =“javascript”type =“text / javascript”>
var levels =“<?php echo $ levels?>”;
</ script>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.