передать mysql имя в datatable автозаполнении jsonp - PullRequest
0 голосов
/ 18 октября 2010

Я использую автозаполнение пользовательского интерфейса jQuery, и я относительно новичок в jQuery и JSON. Ниже мой код. Мне было интересно, если можно указать имя поля и имя таблицы данных внутри URL обратного вызова, чтобы файл php захватил его позже. У меня есть много полей ввода с разными именами и идентификаторами, которые должны иметь автозаполнение. Каждое поле ввода относится к различным столбцам и таблицам данных в MySQL. Так что я на самом деле хочу заменить "SELECT * FROM projects WHERE project_title REGEXP '. $ Param'"; в нечто вроде "SELECT [переменная столбца] FROM [переменная таблицы данных] WHERE [переменная столбца] REGEXP '. $ param'";

Заранее большое спасибо.

Abu

<script type="text/javascript">
        $(function(){

            //attach autocomplete
            $("#project-title").autocomplete({

                //define callback to format results
                source: function(req, add){

                    //pass request to server
                    $.getJSON("bin/test.php?callback=?", req, function(data) {

                        //create array for response objects
                        var suggestions = [];

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

                        //pass array to callback
                        add(suggestions);
                    });
                },
                minLength: 1,


            });
        });

Ниже находится файл test.php

<?php

include('../db.php');
$param = $_GET["term"];

//query the database
$query = "SELECT * FROM projects WHERE project_title REGEXP '.$param'";
$res = connect($query);
//build array of results
for ($x = 0, $numrows = mysql_num_rows($res); $x < $numrows; $x++) {
    $row = mysql_fetch_array($res);

    $friends[$x] = array("name" => $row["project_title"]);
}

//echo JSON to page
$response = $_GET["callback"] . "(" . json_encode($friends) . ")";
echo $response;

?>

1 Ответ

0 голосов
/ 18 октября 2010

Неважно. Я понял. Я использовал что-то вроде этого.

$.getJSON("bin/test.php?callback=?&table=projects&col=project_title", req, function(data) 

, чем получить дополнительные значения, используя

$param = filter_input(INPUT_GET, 'term', FILTER_SANITIZE_STRING);
$param_table = filter_input(INPUT_GET, 'table', FILTER_SANITIZE_STRING);
$param_column = filter_input(INPUT_GET, 'col', FILTER_SANITIZE_STRING);
...