1

オートコンプリートを使用しており、データベースからアイテムを取得しています。これが私のJSです:

    $(".add").autocomplete({

        source: function(req, add){

            $.getJSON("add.php?callback=?", req, function(data) {

                var suggestions = [];

                $.each(data, function(i, val){
                    suggestions.push(val.name);
                });

                add(suggestions);
        });
    },

        messages: {
            noResults: '',
            results: function() {}
        }

    });

「name」と「id」がある配列を PHP で送信しています。ユーザーがデータベースにアクセスせずに選択したときに、選択したアイテムのIDを知りたいのですが、表示されずにソースに入れることはできません。これは望ましくありません。オートコンプリートが見つけたすべてのアイテムで目に見えないIDを持ちたいのですが、ユーザーがそれを選択して値を送信すると、オブジェクトをデータベースに挿入できます。

これが私のPHPファイルです:

<?php

require('connect.php');

$param = $_GET["term"];

$query = mysqli_query($connection, "SELECT * FROM stuff WHERE name REGEXP '^$param'");

for ($x = 0, $numrows = $query->num_rows; $x < $numrows; $x++) {
    $row = mysqli_fetch_assoc($query);
    $add[$x] = array("name" => $row["name"], "id" => $row["id"]);
}

$response = $_GET["callback"] . "(" . json_encode($add) . ")";
echo $response;

これが理にかなっていることを願っています。

4

1 に答える 1