2016-07-15 118 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);