2016-07-15 120 views
0

我想用jquery业余地创建一个自动完成输入字段。我的第一步是通过使用jquery的load函数在keyup上调用php脚本,在输入字段下面显示一些结果。如何在javascript中处理变量

我不知道这是多么的愚蠢,但我认为我几乎在那里。但是,在将keyup变量传递给脚本时,我被卡住了。其实我可以passa一个变量,但我需要使用keyup变量来传递。

为了清晰起见,请参阅代码;

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.0/jquery.min.js"></script> 
<script> 
function getres(){ 
    var x = document.getElementById("cit"); 
    $('#resdiv').load('results.php?cit=x.value'); 
} 
</script> 

HTML

<input type="" name="" id="cit" onkeyup="getres()"> 
<div id='resdiv'></div> 

PHP文件被称为results.php

<?php 

if(isset($_GET['cit'])){echo $_GET['cit']."<br>";} 
include('connnew.php'); 
$getprops=$clientdb->query("SELECT * FROM cities ORDER BY DATE LIMIT 6"); 

while($info=$getprops->fetch_assoc()){ 
    //$results[]=$info['city']; 
    echo $info['city']."<br>"; 
} 

?> 

我为能够得到以下ID RESDIV在div的结果。但问题是,如何确保JavaScript函数中Var X的值附加到load参数results.php?cit =?

我得到'x.value'被传递,而不是x的实际值。我认为一旦我这样做了,最终我可以将变量匹配到结果数组并显示匹配的自动完成类型的结果。

+0

您附上的文件准备在你的功能里面。那是不对的。 –

+0

好的@mohit,感谢您的信息。删除。尽管它仍然以这种方式工作。 – user3526204

+0

@MohitBhardwaj真的吗? –

回答

2

您需要将x.value放在引号之外,因为这是一个变量。你可以使你的代码比现在短得多。你不应该有下面的方式有问题:

$("#cit").on("keyup", function(){ 
    var x = document.getElementById("cit").value; 
    $('#resdiv').load('results.php?cit='+x.value); 
});// 

<input type="" name="" id="cit"> 
<div id='resdiv'></div> 
+0

@spirit真的:) –

+0

但你的帖子是更好,虽然=)+1给你。 – spirit

+0

谢谢@spirit :) –

2

关于你的代码,你这里有一个错误:

$('#resdiv').load('results.php?cit=x.value'); 

更改为:

$('#resdiv').load('results.php?cit=' + x.value);