这是2个输入的两个不同的函数 - inputStringVga和inputStringCpu,但是它总是只加载第一个函数,即使那时2个输入也有不同的ID(inputStringVga和inputStringCpu)为什么会这样?如何让他们加载他们的功能而不是只加载第一个函数查询?
function lookup(inputStringVga) {
if(inputStringVga.length == 0) {
$('#suggestions').fadeOut(); // Hide the suggestions box
} else {
$.post("rpc.php", {queryStringVga: ""+inputStringVga+""}, function(data) { // Do an AJAX call
$('#suggestions').fadeIn(); // Show the suggestions box
$('#suggestions').html(data); // Fill the suggestions box
});
}
}
function lookup(inputStringCpu) {
if(inputStringCpu.length == 0) {
$('#suggestions').fadeOut(); // Hide the suggestions box
} else {
$.post("rpc.php", {queryStringCpu: ""+inputStringCpu+""}, function(data) { // Do an AJAX call
$('#suggestions').fadeIn(); // Show the suggestions box
$('#suggestions').html(data); // Fill the suggestions box
});
}
}
rpc.php文件
$querystring = JRequest::getVar('queryStringCpu');
if(isset($querystring)) {
if(strlen($querystring) >0) {
$query = "SELECT cpuname FROM #__cpu WHERE cpuname LIKE '%" . $querystring . "%' ORDER BY cpuname LIMIT 50";
$db->setQuery( $query );
$db->query( $query ) or die('Blogai');
$qq = $db->loadObjectList();
foreach ($qq as $aa) {
echo '<div class="aa">'.$aa->cpuname.'</div>';
}
}
}
$querystring2 = JRequest::getVar('queryStringVga');
if(isset($querystring2)) {
if(strlen($querystring2) >0) {
$query2 = "SELECT vganame FROM #__cpu WHERE vganame LIKE '%" . $querystring2 . "%' ORDER BY vganame LIMIT 50";
$db->setQuery( $query2 );
$db->query( $query2 ) or die('Blogai');
$qq2 = $db->loadObjectList();
foreach ($qq2 as $aa2) {
echo '<div class="aa1">'.$aa2->vganame.'</div>';
}
}
}
答案 0 :(得分:1)
从我认为你想做的事情来看,你会想要这样的事情:
<input name="'.$this->name.'" type="text" size="50" value="'.$this->value.'" id="inputStringVga" onkeyup="lookup(this.value, this.id);" /></input> <div id="suggestions"></div>
和你的JS:
function lookup(val, id) {
if(val.length == 0) {
$('#suggestions').fadeOut(); // Hide the suggestions box
} else {
aa = {};
aa[id] = ""+val+"";
$.post("rpc.php", aa, function(data) { // Do an AJAX call
$('#suggestions').fadeIn(); // Show the suggestions box
$('#suggestions').html(data); // Fill the suggestions box
});
}
}
可能需要搞乱这个关联数组的形成方式,但不过没有......
答案 1 :(得分:0)
它们都是相同的功能。因此signature of current function
会将一个函数覆盖。因为在读取任何代码之前首先读取函数定义。
两者都有相同的签名function lookup()
..参数的数量不会受到质疑。