Показать результаты 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.