我有一个带有自动完成输入字段的html表单,它打开一个jquery对话框。在这个对话框中,我有一个SQL搜索,需要输入框中的值。我怎么能得到输入在对话框屁股变量?
<!--autocomplete script -->
<script>
$(function() {
$( "#searchImage" ).autocomplete({
source: "search.php",
minLength: 1
});
});
</script>
<!-- Dialog Script -->
<script> $(function(){
$('#imageDialog').dialog({
autoOpen: false,
bgiframe: true,
height: "auto",
width: 900,
modal: true,
position: [ "center" , 150],
show: {
effect: "clip",
duration: 1000
},
hide: {
effect: "clip",
duration: 1000
},
buttons: {
OK: function() {
$(this).dialog( "close" );
}
}
});
$('form#imageForm').submit(function(e){
e.preventDefault();
$('#imageDialog').dialog('open');
});
});
</script>
<!-- Search Box -->
<div class="partSearch">
<form id="imageForm" name="imageForm" method="get">
<label for="image"><b>Image: </b></label>
<input id="searchImage" name="searchImage" type="text" value="" />
<input type="submit" value="Search" />
</form>
<!-- Dialog Content -->
<div id="imageDialog" title="Image">
<?php
<Code to get the Image name from input>;
//DB query
$query="select image, ssid, to_char(savetime,'DD-MM-YYYY HH24:MI') savetime, path
from table
where image like upper('%$IMAGE%')
order by image asc, savetime desc";
?>
尝试查看jQuery UI autoComplete和,而不是使用php直接使用AJAX调用,将填充在自动完成插件中使用的数组
<script>
$(function() {
$( "#tags" ).autocomplete({
source: myarray ; // here put your values from ajax call
});
});
</script>
所以你会用jQuery从输入中获取值。
在你的"search.php"中,你执行一个方法,在这个方法中,你必须对数据库进行搜索,并将结果作为JSON数组发送给ajax调用。
function searchInDB($param) {
// php code
return json_encode($sql_result_from_search);
}
<?php
echo json_encode(array("test","test","test"));
echo json_encode(array(0=>"test",3=>"test",7=>"test"));
?>
Will give :
["test","test","test"]
{"0":"test","3":"test","7":"test"}
您必须阅读更多关于AJAX的内容。看这里