Показать результаты PHP из MYSQL SELECT в Javascript/JSON

В настоящее время я создаю приложение с использованием студии MobiOne, чтобы использовать их функции публикации. Однако я столкнулся с уникальной проблемой. Приложение, по своей сути, запрашивает у пользователя данные для ввода в размещенную базу данных MYSQL. Затем через окно поиска вы можете вызвать определенные записи из той же базы данных MYSQL. Вставная часть работает отлично. Однако я не могу получить результаты для отображения. Я МОГУ заставить это работать в любом старом браузере с простым фрагментом PHP для отображения записей в цикле для стольких результатов, сколько есть.

Тем не менее, PHP не работает гладко в ситуации запуска клиента, как это. MobiOne предпочитает использовать Javascript/JSON/JQuery для отображения данных. Есть ли способ отобразить содержимое цикла, созданного серверной частью PHP-скрипта через Javascript, в блок HTML или DOM?

Ниже приведен код PHP, который я использую для поиска содержимого из формы GET с идентификатором "query" в отдельном файле index.php. Как я уже сказал, это прекрасно работает. Но я должен быть в состоянии взять данные, которые выкладываются, и отобразить их с помощью некоторого JS.

Пожалуйста, проверьте эту ссылку в качестве примера того, что на самом деле делает код, если вы не уверены. Просто введите "взломщик" в качестве тестового поискового запроса.

http://www.tjrcomputersolutions.com/apps/edibles/v1.0/index.php

<?php

//capture search term and remove spaces at its both ends if the is any
$searchTerm = trim($_GET['query']);

//check whether the name parsed is empty
if($searchTerm == "")
{
    echo "Enter name you are searching for.";
    exit();
}

//database connection info
$host = "localhost"; //server
$db = "*****"; //database name
$user = "*****"; //database user name
$pwd = "*****"; //password

//connecting to server and creating link to database
$link = mysqli_connect($host, $user, $pwd, $db);

//MYSQL search statement
$query = "SELECT * FROM items WHERE item LIKE '%$searchTerm%'";

$results = mysqli_query($link, $query);

/* check whether there were matching records in the table
by counting the number of results returned */
if(mysqli_num_rows($results) >= 1)
{
    $output = "";
    while($row = mysqli_fetch_array($results))
    {
        $output .= "Item: " . $row['item'] . "<br />";
        $output .= "Store: " . $row['store'] . "<br />";
        $output .= "Size: " . $row['size'] . "<br />";
        $output .= "Price: " . $row['price'] . "<br /><br />";
    }
    echo $output;
}
else
    echo "There was no matching record for the name " . $searchTerm;
?>

1 ответ

Вы можете использовать http://php.net/json_encode для преобразования массивов PHP в формат JSON. Например:

$items = array(
    array(
        'Item' => 'a',
        'Store' => 'b',
        'Size' => 'c',
        'Price' => 'd',
    ),
    array(
        'Item' => 'e',
        'Store' => 'f',
        'Size' => 'g',
        'Price' => 'h',
    ),
);    

echo json_encode($items); // [{"Item":"a","Store":"b","Size":"c","Price":"d"},{"Item":"e","Store":"f","Size":"g","Price":"h"}]

В вашем случае вам нужно будет смонтировать структуру массива, используя данные из вашей БД, а затем вызвать эту функцию, чтобы преобразовать ее в JSON.

Другие вопросы по тегам