用ajax添加php数据

时间:2018-03-06 12:53:51

标签: php ajax

我有这段代码:

我的mysql表'国家'包含列: id和名称

<input type="text" name="country" id="country" class="form-control input-lg" autocomplete="off" placeholder="Type Country Name" />

<input type="hide" name="id_country" id="id_country" />

<script>
$(document).ready(function(){

    $('#country').typeahead({
        source: function(query, result)
        {
            $.ajax({
                url:"fetch.php",
                method:"POST",
                data:{query:query},
                dataType:"json",
                success:function(data)
                {
                    result($.map(data, function(item){
                            return item;
                        }));
                }
            })
        }
    });
});
</script>

<?php
//fetch.php
$request = mysqli_real_escape_string($connect, $_POST["query"]);
$query = "
 SELECT * FROM countries WHERE name LIKE '%".$request."%'
";

$result = mysqli_query($connect, $query);

$data = array();

if(mysqli_num_rows($result) > 0)
{
    while($row = mysqli_fetch_assoc($result))
    {
        $data[] = $row["name"];
    }
    echo json_encode($data);
}

?>

上面的代码是演示,完整版是here

如何导入国家/地区ID并将其插入id_country输入?

谢谢!

3 个答案:

答案 0 :(得分:2)

尝试添加更改侦听器,并在更改触发typeahead输入元素时使用它来分配ID。

$('#country').change(function(ev){
    var id = ($(this).typeahead("getActive") || {}).id;
    $('#id_country').val(id);
});

PS:你还需要改变

$data[] = $row["name"];

$data[] = $row;

以便ID也是JSON编码数据的一部分,然后应该如下所示:

[{ "id": 1, "name": "Australia"}, { "id": 2, "name": "Germany"}]

答案 1 :(得分:0)

您可以在同一查询中执行所有操作

$query = "INSERT INTO table (country_id) SELECT id FROM table";

只需更改表值

答案 2 :(得分:0)

试试这个

$('#id_country').val(<country-code>); 

为此,您必须从PHP返回国家/地区名称和ID。当用户选择国家/地区时,您可以触发click事件以将选定的国家/地区ID值插入输入。