如何将下拉列表选定值的值发布到另一个页面。我将使用此值添加到我的自动完成查询中。我一直坚持这个问题-_-。
id | cat_code | item_code| item | category |
1 | ACR-01 | A00001 | pencil | supplies |
2 | ACR-01 | A00001 | ballpen | supplies |
3 | ACR-03 | C00001 | Stapler |It equipment |
当我选择耗材时,我需要在autocomplete.php中发布下拉值ACR-01,以便我可以在where子句查询$main = $mysqli->real_escape_string($_POST["mainlist_id"]);
中添加AND cat_code='$main'
这样只有耗材项目出现在自动完成功能中。
Ajax.php
<script type="text/javascript" src="jquery.autocomplete.js"></script>
<script>
$(document).ready(function(){
$("#tag").autocomplete("autocomplete.php", {
selectFirst: true
});
});
</script>
Drop1
<?php
$combo = $mysqli->query("SELECT * FROM category GROUP BY cat_code ORDER BY id");
$option = '';
while($row = $combo->fetch_assoc())
{
$option .= '<option value = "'.$row['cat_code'].'">'.$row['category'].'</option>';
}
?>
<select id="main" name="main">
<option value="" disabled="disabled" selected="selected">Choose</option>
<?php echo $option; ?>
</select>
Auto Complete <input id="tag" type="text">
Autocomplete.php
<?php
$mysqli = new mysqli("localhost", "root", "", "2015") or die("Database Error");
$auto = $mysqli->real_escape_string($_GET["q"]);
$sql = $mysqli->query("SELECT * FROM code WHERE item LIKE '%$auto%' GROUP BY id ORDER BY item" );
if($sql)
{
while($row=mysqli_fetch_array($sql))
{
echo $row['item']."\n";
}
}
?>
我尝试过类似的东西,但它不起作用。我需要的是当我选择值应该发布到自动完成以添加到我的查询中,这样我就可以根据下拉值获得所有正确的项目。
$('#main').change(function(){
$.ajax({
url: 'autocomplete.php',
data: {mainlist_id : $(this).val()},
dataType: 'html',
type: 'POST',
success: function(data) {
$('#tag').html(data);
}
});
});
答案 0 :(得分:0)
您可以通过source
选项指定自定义来源。在源选项中发送ajax请求,以便您可以通过请求传递其他数据,在下面我发送一个可以customdata
访问的其他密钥$_GET['customdata']
:
$("#tag").autocomplete({
source: function(request,response){
$.ajax({
type: 'GET',
url: 'autocomplete.php?q='+request.term+'&customdata=Hello',
dataType: "json",
success: function (data) {
response(data);
}
});
}
});