0

私は日食で(phonegap + json + phpを使用して)Androidアプリを実行していますが、いくつかの問題があります...方法が本当にわかりません...

  • 私はjsonを生成するphpファイル(consulta.php )を持っています。これは私のサーバーにあります( 192.168.1.200/test/consulta.php

    header('content-type: application/json');
    
    mysql_connect("localhost","jhonatan","jsandoval");
    mysql_select_db("tesis");
    
    $array = array();
    
    $query = mysql_query("SELECT * FROM GRIFO");
    
    while($fila = mysql_fetch_object($query)){
        //echo $fila['id'] . " " . $fila['grifo'] . " " . $fila['distrito'] . "<br/>";
        $array[] = array('id'=>$fila->id,
                        'grifo'=>$fila->grifo,
                        'distrito'=>$fila->distrito,
                        'latitud'=>$fila->latitud,
                        'longitud'=>$fila->longitud);
    }
    
    
    echo json_encode($array);
    

したがって、私のindex.html(Androidアプリから、Eclipseのphonegap)には、2つの選択(HTML)を取得するフォームがあります。

<form id="combustibleForm" method="get">
        <select id="combustibleSelect" name="combustibleSelect" data-theme="a">
        <option value="gnv" >Gas Natural Vehicular</option>
        <option value="glp" >Gas Licuado de Petróleo</option>
        </select>

        <br/>

        <select id="distritoSelect" name="distritoSelect" data-theme="a">
        <option value="SJL" >San Juan de Lurigancho</option>
        <option value="Miraflores" >Miraflores</option>
        <option value="Chorrillos" >Chorrillos</option>
        <option value="Surquillo" >Surquillo</option>
        </select>

        <br/>

        <input type="submit" data-role="button" id="continuarBtn" value="Continuar.." />
</form>

これらの選択の値を上記の php ファイルに渡し、そこから json を生成する必要があります。

// GET THE VALUE OF THE SELECTS ... I don't know if this is correct? :S
$tipo = $_GET['tipo'];
$distrito = $_GET['distrito'];
...
...
$query = mysql_query("SELECT * FROM GRIFO WHERE (tipo='$tipo' and distrito='$distrio')");
...
...
// Generate json
echo json_encode($array);

これは私がしなければならないことです:その後...私はphpからjsonを取得する別のhtmlページ( Eclipseのmapa.html )を持っています(wtf!?) ...これを行うには? :S ..

また、送信フォーム ( index.html内) をクリックすると、json を取得するために mapa.html にリダイレクトする必要があります....

私は本当に知りませんし、この大きな問題を解決するためのアイデアもありません...

誰か助けてくれませんか?...

下手な英語でごめんなさい

4

2 に答える 2

0

url または非表示フィールドに追加された url_encoded 文字列として json を渡すことができます。ページ間で通信する必要がある場合は、生成ページで json を隠しフィールドにエコーさせます。json に対して ajax または curl リクエストを実行することもできます

(index.html内)のようなもの

<?php $data = url_encode(json_encode($array)) ?>
    <form action="mapa.html?data=<?php echo $data?>" method="get">
    ...
    </form>
于 2012-12-09T22:16:13.400 に答える
0

HTML のフォーム要素に action 属性がありません。これは、ユーザーが送信をクリックしたときにブラウザがリクエストを送信する場所です。actionそのため、リクエストを PHP スクリプトに送信する場合は、フォームの属性でそれを設定する必要があります。

Consulta.php が HTML ページと同じディレクトリにあると仮定すると...

<form id="combustibleForm" method="get" action="consulta.php">
        <select id="combustibleSelect" name="combustibleSelect" data-theme="a">
        <option value="gnv" >Gas Natural Vehicular</option>
        <option value="glp" >Gas Licuado de Petróleo</option>
        </select>

        <br/>

        <select id="distritoSelect" name="distritoSelect" data-theme="a">
        <option value="SJL" >San Juan de Lurigancho</option>
        <option value="Miraflores" >Miraflores</option>
        <option value="Chorrillos" >Chorrillos</option>
        <option value="Surquillo" >Surquillo</option>
        </select>

        <br/>

        <input type="submit" data-role="button" id="continuarBtn" value="Continuar.." />
</form>

このフォームが送信されると、リクエストは PHP スクリプトに送信され、JSON が生成されます。

PHP でフォームから送信された値を取得するには、それらの要素nameに定義した属性を使用する必要があります。SELECT

あなたの場合、それはcombustibleSelectdistritoSelectです。

$_GET['combustibleSelect']; // This will be the value of the 1st SELECT box
$_GET['distritoSelect'];    // This will be the value of the 2nd SELECT box

データベースとのインターフェースに古い ext/mysql API を使用しないでください。これは廃止されており、PHP の将来のバージョンで削除される可能性があります。PHP で MySQL データベースとやり取りする代わりに、新しいPDO または MySQLi APIを使用することを検討してください。

データを JavaScript に取り込む場合は、ajax を使用して PHP スクリプトにXHR リクエストを送信します。これにより、JavaScript を使用して HTML の DOM に入力したいものを入力できます。JavaScript に外に出て、バックグラウンドで PHP スクリプトにリクエストを送信し、JSON を返して好きなように処理するように要求します。ユーザーがページを離れる必要はありません。

于 2012-12-09T22:19:25.660 に答える