0

html5を使用してphonegapでアプリを設計する必要があります。このアプリでは、フォームから一部のデータを収集してデータベースに保存する必要があります。
問題は、phpと「post」メソッドを使用せずにフォームからそのデータを取得するにはどうすればよいかということです。
続行する前にユーザーがログインする必要があると仮定します。フォームからユーザー名とパスワードを取得してデータベースと照合するにはどうすればよいですか。問題は

4

1 に答える 1

1

Phonegap は完全な JavaScript API です。リクエスト/レスポンスを送信するhtmlフォームを備えたシステムはありません。サービスを使用する方法でアプリを設計する必要があります。仕事に役立つように、 jquery mobilesencha、または単にjquery (以下の例のように) などの JavaScript ライブラリを追加してみてください。これらのライブラリは Phonegap で問題なく動作します (そして、sencha が最も最適化されています)。

  • サービス側を書きます。標準の HTML アプリケーションのようにフォーム パラメータを処理する単純な php ページである可能性があります。データベースにアクセスするには、サーバー側がどこかに必要です。そのため、このファイルをアプリケーションからアクセスできる php/apache のどこかにホストしてください。

--

<?php 
   /* mySaveService.php */
   /* do something like $_GET['param1'] mysql_connect() / mysql_query() and all the stuff */
?>

--

  • クライアントのビュー側を設計します。生のhtml コードを書くか、Sencha のようなフレームワークを使用できます (よりクリーンで難しい方法)。

--

<form>
  <input type="text" name="param1" value="" />
  <input type="button" class="submit" value="send" />
</form>

--

  • フォームの送信時または送信ボタンのクリック時にリスナーを追加します。

--

$('form .submit').click( function() {
  saveInDb($(this).parents('form:first'));
});

--

  • フォームのデータを使用してajax 呼び出しを送信する JavaScript 関数を作成します。URL は同じドメインにはありません。クロスドメイン リクエストを許可してください。

--

saveInDb = function($form) {   
  var myParams = array();   
  $form.find('input').each(function() {
    myParams[$(this).attr('name')] = $(this).val(); 
  });   
  $.ajax({
    url: 'http://domain.com/mySaveService.php',
    data: myParams,
    success: myCallback
  });   
}

--

  • すべてがうまくいったことをユーザーに警告するために、コールバック関数を書くことを忘れないでください

--

myCallback = function() {
  alert('It works');
}

--

  • または、フォームのすべてのデータを 1 か所に集める必要がない場合は、直接localstorageを使用できます。

お役に立てば幸いです。よろしく

于 2012-05-16T08:08:57.143 に答える