【问题标题】:How to post value to another page using ajax?如何使用 ajax 将值发布到另一个页面?
【发布时间】: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 我没有收到任何错误。但我的自动完成功能不起作用。

标签: php jquery ajax


【解决方案1】:

您可以通过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);
                  }
              });


    }
});

【讨论】:

  • $_GET['customdata'] 的值应该是多少?
  • 你可以指定任何你喜欢的,它只是一个 GET 变量,我刚刚给出了它,例如 $_GET['customdata'] 的值是你好,你可以指定你选择的任何键值对
  • 可以获取selectbox选项选中值$( "#main option:selected" ).val();
  • 你能帮我更多吗?我很难使用 ajax 请原谅我
  • 你有什么问题?
猜你喜欢
  • 1970-01-01
  • 2023-03-24
  • 2014-05-15
  • 1970-01-01
  • 2017-10-12
  • 1970-01-01
  • 2012-12-21
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多