2016-11-10 5 views
0

私はVisual Studioを使用してCordovaでクロスプラットフォームアプリケーションを作成しています。 私はMSSQLサーバーへの処理を行う外部Webサーバーと通信する必要があります。クライアント側でJava(ajax)は外部PHPと通信します(Visual StudioのCordova)

私はIndex.htmlとファイルを持っており、それはindex.js外部のJavaScriptファイルを使用しています。

サーバー側には、いくつかのPHPページがあります。ひとつひとつが別の目的を持っています。

Index.htmlと:

<form id="sendmsg" method="POST" action="http://www.somesite.com/.../processingmsg.php" enctype="multipart/form-data"> 
      <p class="darkbg">* verplichte velden</p> 
      <div class="form-group"> 
       <label class="darkbg">Naam</label> 
       <input class="form-control" onkeyup="lengtecheck()" type="text" name="naam" id="naam" /> 
      </div> 
      <div class="form-group"> 
       <label class="darkbg">Leeftijd</label> 
       <input class="form-control" onkeyup="lengtecheck()" type="text" name="leeftijd" id="leeftijd" /> 
      </div> 
      <div class="form-group"> 
       <label class="darkbg">Telefoon</label> 
       <input class="form-control" onkeyup="lengtecheck()" type="text" name="telefoon" id="telefoon" /> 
      </div> 
      <div class="form-group"> 
       <label class="darkbg">Email</label> 
       <input class="form-control" onkeyup="lengtecheck()" type="email" name="email" id="email" /> 
      </div> 
      <div class="form-group"> 
       <label class="darkbg">*ES Code</label> 
       <input class="form-control" onkeyup="lengtecheck()" type="text" name="escode" id="escode" required /> 
      </div> 
      <div class="form-group"> 
       <label class="darkbg">*Bericht</label> 
       <p class="darkbg" id="tekens">0/100</p> 
       <textarea class="form-control" onkeyup="lengtecheck()" rows="7" id="msg" name="msg" cols="20" placeholder="Typ hier uw bericht..." maxlength="100" required></textarea> 
      </div> 
      <input class="btn btn-primary" type="submit" value="Send" id="Send"> 
      <input action="action" class="btn btn-danger" type="button" onclick="window.history.back();" value="Back"> 
     </form> 

ユーザーが送信ボタンをクリックしたときに、processingmsg.phpがすべてを処理し、成功になるように、私はそれを作ることができますどのように、上のJavaScript関数をトリガクライアント側?

その他の質問:これで結果(例:表、ドロップダウン値など)を返すことはできますか?

+0

PHPはサーバサイドのコードなので、クライアント上では何も起動できません。あなたのフォームが提出されるとすぐに、それはHTML/CSS/Javascriptの現在のコンテキストを破壊します。意味するオブジェクトはもう存在しません。これにはAjaxを使うべきです。 Ajaxコールは、リフレッシュせずにPHPコードを呼び出し、現在のページを破棄し、PHPコードからの応答を取得した後にコールバックを実行できます。 – 11thdimension

答えて

0

これを行うには、ブラウザのデフォルトの<form action="...">処理に依存しないでください。代わりにAJAX(XHR)を使用してください。 HTML5Rocksは素晴らしい例です:https://www.html5rocks.com/en/tutorials/file/xhr2/#toc-send-formdata

次に、必要に応じてレスポンスを解析し、必要に応じてDOMを更新します。 JSON.parse(response)を使用すると、使いやすいJavaScriptオブジェクトを取得できるので、JSONを返すことをおすすめします。

ヒント:HTTPSとSSL/TLSを使用してください。ホストをホワイトリストに登録し、content-security-policyメタタグを適切に設定することを忘れないでください。

+0

あなたはどのようにして応答を捕まえることができますか? –

+0

あなたのコメントであなたが何を求めているのか分かりません。言い直してください。 –

+0

私のPHPはWhileループを行います。 AJAXでそれをどのように捕まえることができますか –

関連する問題