Javascript通过函数传递标题属性
我有一个函数,可以得到一个选择菜单的值,这个功能非常好用。但我正在尝试为函数添加另一个值。所以我想我会使用title属性作为选项(请参见下面的代码)。问题是我的JavaScript函数中的username参数是未定义的 有人知道我做错了什么吗 表格Javascript通过函数传递标题属性,javascript,Javascript,我有一个函数,可以得到一个选择菜单的值,这个功能非常好用。但我正在尝试为函数添加另一个值。所以我想我会使用title属性作为选项(请参见下面的代码)。问题是我的JavaScript函数中的username参数是未定义的 有人知道我做错了什么吗 表格 <form action=""> <select id="acyear" name="acyear" onchange="showyearlogdays(this.value, this.title)"> &l
<form action="">
<select id="acyear" name="acyear" onchange="showyearlogdays(this.value, this.title)">
<option value="" label="">- Year -</option>
<?php
$is_business_result = mysql_query('SELECT DISTINCT(academic_year)FROM holiday_entitlement_business_manual WHERE employee = \'' . $username . '\'');
while($acyear_filter = mysql_fetch_array($is_business_result)) {
echo '<option value="'.$acyear_filter['academic_year'].'" title="'.$username.'"';
$datestr = $acyear_filter['academic_year'];
$currentyear = substr($datestr, 0, 4);
if(intval(substr($datestr,4,2)) < 8){$ayear = ($currentyear - 1).'/'.$currentyear;}
else{$ayear = ($currentyear).'/'.($currentyear + 1);}
echo '>';
echo $ayear;
echo '</option>';
}
?>
</select>
</form>
您需要获取所选选项的
标题
属性。您的代码指向select
标记的title
属性。进行以下更改:
showyearlogdays(this.value, this.options[this.selectedIndex].title)
您还应该解决评论中提到的安全问题。查询的设置方式将导致非常简单的SQL注入攻击。如果你不想按照评论员建议的方式重新构建它,我至少会避开
$username
,这样SQL就不会被注入。使用mysql\u query
并连接这样一个不带引号的字符串是一个潜在的bug和安全问题。请改用参数绑定。@Martijn我认为,如果您解释您所说的内容,OP会发现它更有用。@starbeamrainbowlabs:有关SQL注入攻击以及如何保护代码免受攻击的详细信息,请阅读此页。或者看看。@Martijn谢谢!这将非常有用,特别是对于像我这样不太了解mysql的人:)
showyearlogdays(this.value, this.options[this.selectedIndex].title)