Javascript通过函数传递标题属性

Javascript通过函数传递标题属性,javascript,Javascript,我有一个函数,可以得到一个选择菜单的值,这个功能非常好用。但我正在尝试为函数添加另一个值。所以我想我会使用title属性作为选项(请参见下面的代码)。问题是我的JavaScript函数中的username参数是未定义的 有人知道我做错了什么吗 表格 <form action=""> <select id="acyear" name="acyear" onchange="showyearlogdays(this.value, this.title)"> &l

我有一个函数,可以得到一个选择菜单的值,这个功能非常好用。但我正在尝试为函数添加另一个值。所以我想我会使用title属性作为选项(请参见下面的代码)。问题是我的JavaScript函数中的username参数是未定义的

有人知道我做错了什么吗

表格

<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)