gpt4 book ai didi

Javascript通过函数传递标题属性

转载 作者:行者123 更新时间:2023-12-02 19:26:30 25 4
gpt4 key购买 nike

我有一个函数可以获取选择菜单的值,而且效果很好。但我正在尝试为该函数添加另一个值。所以我想我会使用标题属性作为选项(请参阅下面的代码)。问题是我的 JavaScript 函数中的用户名参数是未定义

有人知道我做错了什么吗?

表格

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

Javascript

   function showyearlogdays(str, username)
{
if (str=="")
{
document.getElementById("txtHint").innerHTML="";
return;
}
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
document.getElementById("txtHint").innerHTML=xmlhttp.responseText;
}
}
xmlhttp.open("GET","days_yearlog.php?username="+username+"&q="+str,true);
xmlhttp.send();
}

最佳答案

您需要获取所选选项的title属性。您的代码指向 select 标记的 title 属性。进行以下更改:

showyearlogdays(this.value, this.options[this.selectedIndex].title)

您还应该解决评论中提到的安全问题。您的查询设置方式将构成非常简单的 SQL 注入(inject)攻击。如果您不想按照评论者建议的方式重新构建它,我至少会转义 $username 以便 SQL 无法注入(inject)。

关于Javascript通过函数传递标题属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11990154/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com