0

私は現在、公開機能を使用するために 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;
?>
4

1 に答える 1

0

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"}]

あなたの場合、DB のデータを使用して配列構造をマウントし、この関数を呼び出して JSON に変換する必要があります。

于 2013-11-01T23:27:11.233 に答える