【发布时间】:2014-02-19 08:18:53
【问题描述】:
如何将下拉选择值的值发布到另一个页面。我将使用这个值来添加我的自动完成查询。我一直被这个问题困扰-_-。
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 |
当我选择耗材时,下拉列表的值 ACR-01 是我需要在 autocomplete.php 中发布的内容,因此我可以在 where 子句查询 AND cat_code='$main' 中添加 $main = $mysqli->real_escape_string($_POST["mainlist_id"]); 和这个,这样只有耗材项目才会出现退出自动完成功能。
Ajax.php
<script type="text/javascript" src="jquery.autocomplete.js"></script>
<script>
$(document).ready(function(){
$("#tag").autocomplete("autocomplete.php", {
selectFirst: true
});
});
</script>
掉落1
<?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);
}
});
});
【问题讨论】:
-
您可以通过
source选项中的自动完成发送自定义数据 -
您的 ajax 请求是否有任何错误?检查萤火虫或开发者的工具栏
-
@Nouphal.M 如何使用该源选项?请原谅我是 ajax 的初学者 :(
-
查询字符串参数是否同名?
-
@jogesh_pi 我没有收到任何错误。但我的自动完成功能不起作用。