私は現在、公開機能を使用するために MobiOne スタジオを使用してアプリケーションを構築しています。しかし、私は独特の問題に遭遇しました。最も基本的なアプリは、ホストされている MYSQL データベースに入力するデータをユーザーに照会します。次に、検索ボックスを介して、同じ MYSQL データベースから特定のレコードを呼び出すことができます。挿入部分は問題なく動作します。ただし、結果を表示することはできません。シンプルなPHPスニペットを使用して、古いブラウザーでこれを機能させ、レコードをループで表示して、できるだけ多くの結果を得ることができます。
しかし、このようなクライアント実行状況では、PHP はスムーズに動作しません。MobiOne は、Javascript/JSON/JQuery を使用してデータを表示することを好みます。Javascriptを介してPHPスクリプトサーバーサイドによって作成されたループの内容をHTMLブロックまたはDOMに表示する方法はありますか?
以下は、別の index.php ファイルで ID "query" を持つ GET フォームからコンテンツを検索するために使用する PHP コードです。私が言ったように、これはうまくいきます。しかし、これが吐き出すデータを取得して、JSで表示できるようにする必要があります。
よくわからない場合は、コードが実際に何をするかの例として、このリンクをチェックしてください。テスト検索クエリとして「cracker」と入力するだけです。
http://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;
?>