如何使用ajax将值发布到另一个页面?

时间:2014-02-19 08:18:53

标签: php jquery ajax

如何将下拉列表选定值的值发布到另一个页面。我将使用此值添加到我的自动完成查询中。我一直坚持这个问题-_-。

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);
        }
    });
});

1 个答案:

答案 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);
                  }
              });


    }
});