0

次のようなアプリのワークフローがあります。

1) ユーザーがフォームを開きます。入力データ 2) 写真追加ボタンをクリックし、写真を選択します。3) 写真がアップロードされ、フォーム データと写真の URL を含む新しいレコードがデータベースに挿入されます。

写真は、ファイル転送メソッドを使用して問題なくアップロードされます。

私のコードは次のとおりです。

変数 s.photo が設定されているかどうかを確認します。

if(app.isEmpty(s.photo)) {

    photo = "" ; 

}else {

    app.uploadPhoto();
    alert(s.photoresponse);

}

//ここに詳細を保存

私のアップロード写真機能は次のとおりです。

uploadPhoto: function () {

    var options = new FileUploadOptions();
    options.fileKey="file";
    options.fileName=s.photo.substr(s.photo.lastIndexOf('/')+1);
    options.mimeType="image/jpeg";

    var params = new Object();
    options.params = params;
    options.chunkedMode = false;
    alert("uploading photo");
    var ft = new FileTransfer();
    ft.upload(s.photo, encodeURI("http://server.com/upload.php"), app.win, app.fail, options);

}

そして、私の app.win 関数は、応答を s.photoresponse に設定するだけです

win: function (r) {
    s.photoresponse = r.response;
}

最初の関数を確認すると、s.photoresponse 変数にアラートを出すようにしました。そのため、写真がサーバーにアップロードされていても、写真の URL をサーバーに挿入できません。

ファイル転送方法は非同期です。フォームを送信する前に写真の URL を取得するにはどうすればよいですか?

4

1 に答える 1

0

あなたが言うように、送信フォームロジックをapp.win関数に移動する必要があります...非同期ですが、この成功関数でアップロードから応答を取得します。

win: function (r) {
    s.photoresponse = r.response;
    // Here comes your submit form logic....
    alert(s.photoresponse); //<--From your example
}
于 2013-09-13T02:15:28.767 に答える